From c6ae58f5208515186fe45c6100f9ebd5da94308a Mon Sep 17 00:00:00 2001 From: kayos Date: Thu, 20 May 2021 16:25:29 -0700 Subject: [PATCH] get it do you get the pun its quite clever - so ne wayz --- README.md | 26 + arrange/arrange.go | 192 + auxillary/auxillary.go | 33 + config.toml | 5 + go.mod | 9 + go.sum | 348 + main.go | 94 + misc/bladerf_calibration_data_05-19-2021.bin | Bin 0 -> 482 bytes misc/bladerf_firmware_05-19-2021.bin | Bin 0 -> 196834 bytes misc/bladerf_fpga115_metadata_05-19-2021.bin | Bin 0 -> 3604706 bytes misc/bladerf_fpga40_metadata_05-19-2021.bin | Bin 0 -> 3604706 bytes misc/bladerf_fpgaA4_metadata_05-19-2021.bin | Bin 0 -> 2687202 bytes .../erayarslan/go-bladerf/.gitignore | 52 + .../erayarslan/go-bladerf/README.md | 18 + .../erayarslan/go-bladerf/bladerf.go | 618 ++ .../github.com/erayarslan/go-bladerf/enums.go | 126 + .../erayarslan/go-bladerf/enums.go.save | 133 + .../erayarslan/go-bladerf/error/error.go | 89 + .../github.com/erayarslan/go-bladerf/go.mod | 10 + .../github.com/erayarslan/go-bladerf/go.sum | 58 + .../erayarslan/go-bladerf/macro_wrapper.c | 11 + .../erayarslan/go-bladerf/macro_wrapper.h | 4 + .../erayarslan/go-bladerf/macros.go | 12 + .../erayarslan/go-bladerf/structs.go | 138 + .../fsnotify/fsnotify/.editorconfig | 5 + .../github.com/fsnotify/fsnotify/.gitignore | 6 + .../github.com/fsnotify/fsnotify/.travis.yml | 30 + vendor/github.com/fsnotify/fsnotify/AUTHORS | 52 + .../github.com/fsnotify/fsnotify/CHANGELOG.md | 317 + .../fsnotify/fsnotify/CONTRIBUTING.md | 77 + vendor/github.com/fsnotify/fsnotify/LICENSE | 28 + vendor/github.com/fsnotify/fsnotify/README.md | 79 + vendor/github.com/fsnotify/fsnotify/fen.go | 37 + .../github.com/fsnotify/fsnotify/fsnotify.go | 66 + .../github.com/fsnotify/fsnotify/inotify.go | 337 + .../fsnotify/fsnotify/inotify_poller.go | 187 + vendor/github.com/fsnotify/fsnotify/kqueue.go | 521 ++ .../fsnotify/fsnotify/open_mode_bsd.go | 11 + .../fsnotify/fsnotify/open_mode_darwin.go | 12 + .../github.com/fsnotify/fsnotify/windows.go | 561 ++ vendor/github.com/hashicorp/hcl/.gitignore | 9 + vendor/github.com/hashicorp/hcl/.travis.yml | 13 + vendor/github.com/hashicorp/hcl/LICENSE | 354 + vendor/github.com/hashicorp/hcl/Makefile | 18 + vendor/github.com/hashicorp/hcl/README.md | 125 + vendor/github.com/hashicorp/hcl/appveyor.yml | 19 + vendor/github.com/hashicorp/hcl/decoder.go | 729 ++ vendor/github.com/hashicorp/hcl/go.mod | 3 + vendor/github.com/hashicorp/hcl/go.sum | 2 + vendor/github.com/hashicorp/hcl/hcl.go | 11 + .../github.com/hashicorp/hcl/hcl/ast/ast.go | 219 + .../github.com/hashicorp/hcl/hcl/ast/walk.go | 52 + .../hashicorp/hcl/hcl/parser/error.go | 17 + .../hashicorp/hcl/hcl/parser/parser.go | 532 ++ .../hashicorp/hcl/hcl/printer/nodes.go | 789 ++ .../hashicorp/hcl/hcl/printer/printer.go | 66 + .../hashicorp/hcl/hcl/scanner/scanner.go | 652 ++ .../hashicorp/hcl/hcl/strconv/quote.go | 241 + .../hashicorp/hcl/hcl/token/position.go | 46 + .../hashicorp/hcl/hcl/token/token.go | 219 + .../hashicorp/hcl/json/parser/flatten.go | 117 + .../hashicorp/hcl/json/parser/parser.go | 313 + .../hashicorp/hcl/json/scanner/scanner.go | 451 + .../hashicorp/hcl/json/token/position.go | 46 + .../hashicorp/hcl/json/token/token.go | 118 + vendor/github.com/hashicorp/hcl/lex.go | 38 + vendor/github.com/hashicorp/hcl/parse.go | 39 + .../magiconair/properties/.gitignore | 6 + .../magiconair/properties/.travis.yml | 12 + .../magiconair/properties/CHANGELOG.md | 139 + .../github.com/magiconair/properties/LICENSE | 25 + .../magiconair/properties/README.md | 129 + .../magiconair/properties/decode.go | 289 + .../github.com/magiconair/properties/doc.go | 156 + .../github.com/magiconair/properties/go.mod | 1 + .../magiconair/properties/integrate.go | 34 + .../github.com/magiconair/properties/lex.go | 407 + .../github.com/magiconair/properties/load.go | 292 + .../magiconair/properties/parser.go | 95 + .../magiconair/properties/properties.go | 833 ++ .../magiconair/properties/rangecheck.go | 31 + vendor/github.com/mattn/go-pointer/LICENSE | 21 + vendor/github.com/mattn/go-pointer/README.md | 29 + vendor/github.com/mattn/go-pointer/doc.go | 1 + vendor/github.com/mattn/go-pointer/pointer.go | 57 + .../mitchellh/mapstructure/.travis.yml | 8 + .../mitchellh/mapstructure/CHANGELOG.md | 21 + .../github.com/mitchellh/mapstructure/LICENSE | 21 + .../mitchellh/mapstructure/README.md | 46 + .../mitchellh/mapstructure/decode_hooks.go | 217 + .../mitchellh/mapstructure/error.go | 50 + .../github.com/mitchellh/mapstructure/go.mod | 1 + .../mitchellh/mapstructure/mapstructure.go | 1149 +++ .../github.com/pelletier/go-toml/.gitignore | 2 + .../github.com/pelletier/go-toml/.travis.yml | 23 + vendor/github.com/pelletier/go-toml/LICENSE | 21 + vendor/github.com/pelletier/go-toml/README.md | 131 + .../pelletier/go-toml/benchmark.json | 164 + .../github.com/pelletier/go-toml/benchmark.sh | 32 + .../pelletier/go-toml/benchmark.toml | 244 + .../pelletier/go-toml/benchmark.yml | 121 + vendor/github.com/pelletier/go-toml/doc.go | 23 + .../pelletier/go-toml/example-crlf.toml | 29 + .../github.com/pelletier/go-toml/example.toml | 29 + vendor/github.com/pelletier/go-toml/fuzz.go | 31 + vendor/github.com/pelletier/go-toml/fuzz.sh | 15 + .../pelletier/go-toml/keysparsing.go | 85 + vendor/github.com/pelletier/go-toml/lexer.go | 750 ++ .../github.com/pelletier/go-toml/marshal.go | 609 ++ .../pelletier/go-toml/marshal_test.toml | 38 + vendor/github.com/pelletier/go-toml/parser.go | 430 + .../github.com/pelletier/go-toml/position.go | 29 + vendor/github.com/pelletier/go-toml/test.sh | 88 + vendor/github.com/pelletier/go-toml/token.go | 144 + vendor/github.com/pelletier/go-toml/toml.go | 367 + .../pelletier/go-toml/tomltree_create.go | 142 + .../pelletier/go-toml/tomltree_write.go | 333 + vendor/github.com/rs/zerolog/.gitignore | 25 + vendor/github.com/rs/zerolog/CNAME | 1 + vendor/github.com/rs/zerolog/LICENSE | 21 + vendor/github.com/rs/zerolog/README.md | 693 ++ vendor/github.com/rs/zerolog/_config.yml | 1 + vendor/github.com/rs/zerolog/array.go | 233 + vendor/github.com/rs/zerolog/console.go | 409 + vendor/github.com/rs/zerolog/context.go | 431 + vendor/github.com/rs/zerolog/ctx.go | 48 + vendor/github.com/rs/zerolog/encoder.go | 56 + vendor/github.com/rs/zerolog/encoder_cbor.go | 35 + vendor/github.com/rs/zerolog/encoder_json.go | 32 + vendor/github.com/rs/zerolog/event.go | 745 ++ vendor/github.com/rs/zerolog/fields.go | 253 + vendor/github.com/rs/zerolog/globals.go | 129 + vendor/github.com/rs/zerolog/go.mod | 8 + vendor/github.com/rs/zerolog/go.sum | 32 + vendor/github.com/rs/zerolog/go112.go | 7 + vendor/github.com/rs/zerolog/hook.go | 64 + .../rs/zerolog/internal/cbor/README.md | 56 + .../rs/zerolog/internal/cbor/base.go | 11 + .../rs/zerolog/internal/cbor/cbor.go | 100 + .../rs/zerolog/internal/cbor/decode_stream.go | 614 ++ .../rs/zerolog/internal/cbor/string.go | 68 + .../rs/zerolog/internal/cbor/time.go | 93 + .../rs/zerolog/internal/cbor/types.go | 478 + .../rs/zerolog/internal/json/base.go | 11 + .../rs/zerolog/internal/json/bytes.go | 85 + .../rs/zerolog/internal/json/string.go | 121 + .../rs/zerolog/internal/json/time.go | 106 + .../rs/zerolog/internal/json/types.go | 406 + vendor/github.com/rs/zerolog/log.go | 448 + vendor/github.com/rs/zerolog/not_go112.go | 5 + vendor/github.com/rs/zerolog/pretty.png | Bin 0 -> 84064 bytes vendor/github.com/rs/zerolog/sampler.go | 134 + vendor/github.com/rs/zerolog/syslog.go | 80 + vendor/github.com/rs/zerolog/writer.go | 98 + vendor/github.com/spf13/afero/.travis.yml | 21 + vendor/github.com/spf13/afero/LICENSE.txt | 174 + vendor/github.com/spf13/afero/README.md | 452 + vendor/github.com/spf13/afero/afero.go | 108 + vendor/github.com/spf13/afero/appveyor.yml | 15 + vendor/github.com/spf13/afero/basepath.go | 180 + .../github.com/spf13/afero/cacheOnReadFs.go | 290 + vendor/github.com/spf13/afero/const_bsds.go | 22 + .../github.com/spf13/afero/const_win_unix.go | 25 + .../github.com/spf13/afero/copyOnWriteFs.go | 292 + vendor/github.com/spf13/afero/go.mod | 1 + vendor/github.com/spf13/afero/httpFs.go | 110 + vendor/github.com/spf13/afero/ioutil.go | 230 + vendor/github.com/spf13/afero/lstater.go | 27 + vendor/github.com/spf13/afero/match.go | 110 + vendor/github.com/spf13/afero/mem/dir.go | 37 + vendor/github.com/spf13/afero/mem/dirmap.go | 43 + vendor/github.com/spf13/afero/mem/file.go | 317 + vendor/github.com/spf13/afero/memmap.go | 365 + vendor/github.com/spf13/afero/os.go | 101 + vendor/github.com/spf13/afero/path.go | 106 + vendor/github.com/spf13/afero/readonlyfs.go | 80 + vendor/github.com/spf13/afero/regexpfs.go | 214 + vendor/github.com/spf13/afero/unionFile.go | 305 + vendor/github.com/spf13/afero/util.go | 330 + vendor/github.com/spf13/cast/.gitignore | 25 + vendor/github.com/spf13/cast/.travis.yml | 15 + vendor/github.com/spf13/cast/LICENSE | 21 + vendor/github.com/spf13/cast/Makefile | 38 + vendor/github.com/spf13/cast/README.md | 75 + vendor/github.com/spf13/cast/cast.go | 171 + vendor/github.com/spf13/cast/caste.go | 1249 +++ vendor/github.com/spf13/cast/go.mod | 7 + vendor/github.com/spf13/cast/go.sum | 6 + .../spf13/jwalterweatherman/.gitignore | 22 + .../spf13/jwalterweatherman/LICENSE | 21 + .../spf13/jwalterweatherman/README.md | 148 + .../jwalterweatherman/default_notepad.go | 113 + .../github.com/spf13/jwalterweatherman/go.mod | 1 + .../spf13/jwalterweatherman/log_counter.go | 55 + .../spf13/jwalterweatherman/notepad.go | 194 + vendor/github.com/spf13/pflag/.gitignore | 2 + vendor/github.com/spf13/pflag/.travis.yml | 21 + vendor/github.com/spf13/pflag/LICENSE | 28 + vendor/github.com/spf13/pflag/README.md | 296 + vendor/github.com/spf13/pflag/bool.go | 94 + vendor/github.com/spf13/pflag/bool_slice.go | 147 + vendor/github.com/spf13/pflag/bytes.go | 209 + vendor/github.com/spf13/pflag/count.go | 96 + vendor/github.com/spf13/pflag/duration.go | 86 + .../github.com/spf13/pflag/duration_slice.go | 128 + vendor/github.com/spf13/pflag/flag.go | 1227 +++ vendor/github.com/spf13/pflag/float32.go | 88 + vendor/github.com/spf13/pflag/float64.go | 84 + vendor/github.com/spf13/pflag/golangflag.go | 105 + vendor/github.com/spf13/pflag/int.go | 84 + vendor/github.com/spf13/pflag/int16.go | 88 + vendor/github.com/spf13/pflag/int32.go | 88 + vendor/github.com/spf13/pflag/int64.go | 84 + vendor/github.com/spf13/pflag/int8.go | 88 + vendor/github.com/spf13/pflag/int_slice.go | 128 + vendor/github.com/spf13/pflag/ip.go | 94 + vendor/github.com/spf13/pflag/ip_slice.go | 148 + vendor/github.com/spf13/pflag/ipmask.go | 122 + vendor/github.com/spf13/pflag/ipnet.go | 98 + vendor/github.com/spf13/pflag/string.go | 80 + vendor/github.com/spf13/pflag/string_array.go | 103 + vendor/github.com/spf13/pflag/string_slice.go | 149 + .../github.com/spf13/pflag/string_to_int.go | 149 + .../spf13/pflag/string_to_string.go | 160 + vendor/github.com/spf13/pflag/uint.go | 88 + vendor/github.com/spf13/pflag/uint16.go | 88 + vendor/github.com/spf13/pflag/uint32.go | 88 + vendor/github.com/spf13/pflag/uint64.go | 88 + vendor/github.com/spf13/pflag/uint8.go | 88 + vendor/github.com/spf13/pflag/uint_slice.go | 126 + vendor/github.com/spf13/viper/.editorconfig | 15 + vendor/github.com/spf13/viper/.gitignore | 5 + vendor/github.com/spf13/viper/.golangci.yml | 27 + vendor/github.com/spf13/viper/LICENSE | 21 + vendor/github.com/spf13/viper/Makefile | 76 + vendor/github.com/spf13/viper/README.md | 806 ++ vendor/github.com/spf13/viper/flags.go | 57 + vendor/github.com/spf13/viper/go.mod | 40 + vendor/github.com/spf13/viper/go.sum | 388 + vendor/github.com/spf13/viper/util.go | 230 + vendor/github.com/spf13/viper/viper.go | 2025 +++++ vendor/github.com/subosito/gotenv/.env | 1 + .../github.com/subosito/gotenv/.env.invalid | 1 + vendor/github.com/subosito/gotenv/.gitignore | 3 + vendor/github.com/subosito/gotenv/.travis.yml | 10 + .../github.com/subosito/gotenv/CHANGELOG.md | 47 + vendor/github.com/subosito/gotenv/LICENSE | 21 + vendor/github.com/subosito/gotenv/README.md | 131 + .../github.com/subosito/gotenv/appveyor.yml | 9 + vendor/github.com/subosito/gotenv/gotenv.go | 265 + vendor/golang.org/x/sys/AUTHORS | 3 + vendor/golang.org/x/sys/CONTRIBUTORS | 3 + vendor/golang.org/x/sys/LICENSE | 27 + vendor/golang.org/x/sys/PATENTS | 22 + .../sys/internal/unsafeheader/unsafeheader.go | 30 + vendor/golang.org/x/sys/unix/.gitignore | 2 + vendor/golang.org/x/sys/unix/README.md | 184 + .../golang.org/x/sys/unix/affinity_linux.go | 86 + vendor/golang.org/x/sys/unix/aliases.go | 14 + vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 17 + vendor/golang.org/x/sys/unix/asm_darwin_386.s | 29 + .../golang.org/x/sys/unix/asm_darwin_amd64.s | 29 + vendor/golang.org/x/sys/unix/asm_darwin_arm.s | 30 + .../golang.org/x/sys/unix/asm_darwin_arm64.s | 30 + .../x/sys/unix/asm_dragonfly_amd64.s | 29 + .../golang.org/x/sys/unix/asm_freebsd_386.s | 29 + .../golang.org/x/sys/unix/asm_freebsd_amd64.s | 29 + .../golang.org/x/sys/unix/asm_freebsd_arm.s | 29 + .../golang.org/x/sys/unix/asm_freebsd_arm64.s | 29 + vendor/golang.org/x/sys/unix/asm_linux_386.s | 65 + .../golang.org/x/sys/unix/asm_linux_amd64.s | 57 + vendor/golang.org/x/sys/unix/asm_linux_arm.s | 56 + .../golang.org/x/sys/unix/asm_linux_arm64.s | 52 + .../golang.org/x/sys/unix/asm_linux_mips64x.s | 56 + .../golang.org/x/sys/unix/asm_linux_mipsx.s | 54 + .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 44 + .../golang.org/x/sys/unix/asm_linux_riscv64.s | 47 + .../golang.org/x/sys/unix/asm_linux_s390x.s | 56 + vendor/golang.org/x/sys/unix/asm_netbsd_386.s | 29 + .../golang.org/x/sys/unix/asm_netbsd_amd64.s | 29 + vendor/golang.org/x/sys/unix/asm_netbsd_arm.s | 29 + .../golang.org/x/sys/unix/asm_netbsd_arm64.s | 29 + .../golang.org/x/sys/unix/asm_openbsd_386.s | 29 + .../golang.org/x/sys/unix/asm_openbsd_amd64.s | 29 + .../golang.org/x/sys/unix/asm_openbsd_arm.s | 29 + .../golang.org/x/sys/unix/asm_openbsd_arm64.s | 29 + .../x/sys/unix/asm_openbsd_mips64.s | 29 + .../golang.org/x/sys/unix/asm_solaris_amd64.s | 17 + .../golang.org/x/sys/unix/bluetooth_linux.go | 36 + vendor/golang.org/x/sys/unix/cap_freebsd.go | 195 + vendor/golang.org/x/sys/unix/constants.go | 13 + vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 27 + vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 29 + vendor/golang.org/x/sys/unix/dev_darwin.go | 24 + vendor/golang.org/x/sys/unix/dev_dragonfly.go | 30 + vendor/golang.org/x/sys/unix/dev_freebsd.go | 30 + vendor/golang.org/x/sys/unix/dev_linux.go | 42 + vendor/golang.org/x/sys/unix/dev_netbsd.go | 29 + vendor/golang.org/x/sys/unix/dev_openbsd.go | 29 + vendor/golang.org/x/sys/unix/dirent.go | 102 + vendor/golang.org/x/sys/unix/endian_big.go | 9 + vendor/golang.org/x/sys/unix/endian_little.go | 9 + vendor/golang.org/x/sys/unix/env_unix.go | 31 + .../x/sys/unix/errors_freebsd_386.go | 233 + .../x/sys/unix/errors_freebsd_amd64.go | 233 + .../x/sys/unix/errors_freebsd_arm.go | 226 + .../x/sys/unix/errors_freebsd_arm64.go | 17 + vendor/golang.org/x/sys/unix/fcntl.go | 36 + vendor/golang.org/x/sys/unix/fcntl_darwin.go | 24 + .../x/sys/unix/fcntl_linux_32bit.go | 13 + vendor/golang.org/x/sys/unix/fdset.go | 29 + vendor/golang.org/x/sys/unix/gccgo.go | 60 + vendor/golang.org/x/sys/unix/gccgo_c.c | 45 + .../x/sys/unix/gccgo_linux_amd64.go | 20 + vendor/golang.org/x/sys/unix/ioctl.go | 74 + vendor/golang.org/x/sys/unix/mkall.sh | 243 + vendor/golang.org/x/sys/unix/mkerrors.sh | 726 ++ vendor/golang.org/x/sys/unix/pagesize_unix.go | 15 + .../golang.org/x/sys/unix/pledge_openbsd.go | 163 + vendor/golang.org/x/sys/unix/ptrace_darwin.go | 11 + vendor/golang.org/x/sys/unix/ptrace_ios.go | 11 + vendor/golang.org/x/sys/unix/race.go | 30 + vendor/golang.org/x/sys/unix/race0.go | 25 + .../x/sys/unix/readdirent_getdents.go | 12 + .../x/sys/unix/readdirent_getdirentries.go | 19 + .../x/sys/unix/sockcmsg_dragonfly.go | 16 + .../golang.org/x/sys/unix/sockcmsg_linux.go | 36 + vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 92 + .../x/sys/unix/sockcmsg_unix_other.go | 42 + vendor/golang.org/x/sys/unix/str.go | 26 + vendor/golang.org/x/sys/unix/syscall.go | 94 + vendor/golang.org/x/sys/unix/syscall_aix.go | 552 ++ .../golang.org/x/sys/unix/syscall_aix_ppc.go | 54 + .../x/sys/unix/syscall_aix_ppc64.go | 85 + vendor/golang.org/x/sys/unix/syscall_bsd.go | 663 ++ .../x/sys/unix/syscall_darwin.1_12.go | 31 + .../x/sys/unix/syscall_darwin.1_13.go | 107 + .../golang.org/x/sys/unix/syscall_darwin.go | 668 ++ .../x/sys/unix/syscall_darwin_386.go | 50 + .../x/sys/unix/syscall_darwin_amd64.go | 50 + .../x/sys/unix/syscall_darwin_arm.go | 51 + .../x/sys/unix/syscall_darwin_arm64.go | 50 + .../x/sys/unix/syscall_darwin_libSystem.go | 33 + .../x/sys/unix/syscall_dragonfly.go | 541 ++ .../x/sys/unix/syscall_dragonfly_amd64.go | 56 + .../golang.org/x/sys/unix/syscall_freebsd.go | 863 ++ .../x/sys/unix/syscall_freebsd_386.go | 66 + .../x/sys/unix/syscall_freebsd_amd64.go | 66 + .../x/sys/unix/syscall_freebsd_arm.go | 62 + .../x/sys/unix/syscall_freebsd_arm64.go | 62 + .../golang.org/x/sys/unix/syscall_illumos.go | 77 + vendor/golang.org/x/sys/unix/syscall_linux.go | 2401 +++++ .../x/sys/unix/syscall_linux_386.go | 387 + .../x/sys/unix/syscall_linux_amd64.go | 194 + .../x/sys/unix/syscall_linux_amd64_gc.go | 13 + .../x/sys/unix/syscall_linux_arm.go | 286 + .../x/sys/unix/syscall_linux_arm64.go | 245 + .../golang.org/x/sys/unix/syscall_linux_gc.go | 14 + .../x/sys/unix/syscall_linux_gc_386.go | 16 + .../x/sys/unix/syscall_linux_gc_arm.go | 13 + .../x/sys/unix/syscall_linux_gccgo_386.go | 30 + .../x/sys/unix/syscall_linux_gccgo_arm.go | 20 + .../x/sys/unix/syscall_linux_mips64x.go | 230 + .../x/sys/unix/syscall_linux_mipsx.go | 238 + .../x/sys/unix/syscall_linux_ppc64x.go | 156 + .../x/sys/unix/syscall_linux_riscv64.go | 230 + .../x/sys/unix/syscall_linux_s390x.go | 342 + .../x/sys/unix/syscall_linux_sparc64.go | 151 + .../golang.org/x/sys/unix/syscall_netbsd.go | 603 ++ .../x/sys/unix/syscall_netbsd_386.go | 37 + .../x/sys/unix/syscall_netbsd_amd64.go | 37 + .../x/sys/unix/syscall_netbsd_arm.go | 37 + .../x/sys/unix/syscall_netbsd_arm64.go | 37 + .../golang.org/x/sys/unix/syscall_openbsd.go | 390 + .../x/sys/unix/syscall_openbsd_386.go | 41 + .../x/sys/unix/syscall_openbsd_amd64.go | 41 + .../x/sys/unix/syscall_openbsd_arm.go | 41 + .../x/sys/unix/syscall_openbsd_arm64.go | 41 + .../x/sys/unix/syscall_openbsd_mips64.go | 35 + .../golang.org/x/sys/unix/syscall_solaris.go | 740 ++ .../x/sys/unix/syscall_solaris_amd64.go | 27 + vendor/golang.org/x/sys/unix/syscall_unix.go | 430 + .../golang.org/x/sys/unix/syscall_unix_gc.go | 15 + .../x/sys/unix/syscall_unix_gc_ppc64x.go | 24 + vendor/golang.org/x/sys/unix/timestruct.go | 76 + .../golang.org/x/sys/unix/unveil_openbsd.go | 42 + vendor/golang.org/x/sys/unix/xattr_bsd.go | 240 + .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1384 +++ .../x/sys/unix/zerrors_aix_ppc64.go | 1385 +++ .../x/sys/unix/zerrors_darwin_386.go | 1788 ++++ .../x/sys/unix/zerrors_darwin_amd64.go | 1788 ++++ .../x/sys/unix/zerrors_darwin_arm.go | 1788 ++++ .../x/sys/unix/zerrors_darwin_arm64.go | 1788 ++++ .../x/sys/unix/zerrors_dragonfly_amd64.go | 1737 ++++ .../x/sys/unix/zerrors_freebsd_386.go | 1936 +++++ .../x/sys/unix/zerrors_freebsd_amd64.go | 1935 +++++ .../x/sys/unix/zerrors_freebsd_arm.go | 1825 ++++ .../x/sys/unix/zerrors_freebsd_arm64.go | 1936 +++++ vendor/golang.org/x/sys/unix/zerrors_linux.go | 2786 ++++++ .../x/sys/unix/zerrors_linux_386.go | 790 ++ .../x/sys/unix/zerrors_linux_amd64.go | 790 ++ .../x/sys/unix/zerrors_linux_arm.go | 796 ++ .../x/sys/unix/zerrors_linux_arm64.go | 786 ++ .../x/sys/unix/zerrors_linux_mips.go | 797 ++ .../x/sys/unix/zerrors_linux_mips64.go | 797 ++ .../x/sys/unix/zerrors_linux_mips64le.go | 797 ++ .../x/sys/unix/zerrors_linux_mipsle.go | 797 ++ .../x/sys/unix/zerrors_linux_ppc64.go | 853 ++ .../x/sys/unix/zerrors_linux_ppc64le.go | 853 ++ .../x/sys/unix/zerrors_linux_riscv64.go | 777 ++ .../x/sys/unix/zerrors_linux_s390x.go | 850 ++ .../x/sys/unix/zerrors_linux_sparc64.go | 847 ++ .../x/sys/unix/zerrors_netbsd_386.go | 1779 ++++ .../x/sys/unix/zerrors_netbsd_amd64.go | 1769 ++++ .../x/sys/unix/zerrors_netbsd_arm.go | 1758 ++++ .../x/sys/unix/zerrors_netbsd_arm64.go | 1769 ++++ .../x/sys/unix/zerrors_openbsd_386.go | 1664 ++++ .../x/sys/unix/zerrors_openbsd_amd64.go | 1774 ++++ .../x/sys/unix/zerrors_openbsd_arm.go | 1666 ++++ .../x/sys/unix/zerrors_openbsd_arm64.go | 1797 ++++ .../x/sys/unix/zerrors_openbsd_mips64.go | 1862 ++++ .../x/sys/unix/zerrors_solaris_amd64.go | 1553 ++++ .../x/sys/unix/zptrace_armnn_linux.go | 41 + .../x/sys/unix/zptrace_linux_arm64.go | 17 + .../x/sys/unix/zptrace_mipsnn_linux.go | 50 + .../x/sys/unix/zptrace_mipsnnle_linux.go | 50 + .../x/sys/unix/zptrace_x86_linux.go | 80 + .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1484 ++++ .../x/sys/unix/zsyscall_aix_ppc64.go | 1442 +++ .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1192 +++ .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1070 +++ .../x/sys/unix/zsyscall_darwin_386.1_13.go | 39 + .../x/sys/unix/zsyscall_darwin_386.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_386.go | 2430 ++++++ .../x/sys/unix/zsyscall_darwin_386.s | 290 + .../x/sys/unix/zsyscall_darwin_amd64.1_13.go | 39 + .../x/sys/unix/zsyscall_darwin_amd64.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_amd64.go | 2430 ++++++ .../x/sys/unix/zsyscall_darwin_amd64.s | 290 + .../x/sys/unix/zsyscall_darwin_arm.1_13.go | 39 + .../x/sys/unix/zsyscall_darwin_arm.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_arm.go | 2416 ++++++ .../x/sys/unix/zsyscall_darwin_arm.s | 288 + .../x/sys/unix/zsyscall_darwin_arm64.1_13.go | 39 + .../x/sys/unix/zsyscall_darwin_arm64.1_13.s | 12 + .../x/sys/unix/zsyscall_darwin_arm64.go | 2430 ++++++ .../x/sys/unix/zsyscall_darwin_arm64.s | 290 + .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1676 ++++ .../x/sys/unix/zsyscall_freebsd_386.go | 2015 +++++ .../x/sys/unix/zsyscall_freebsd_amd64.go | 2015 +++++ .../x/sys/unix/zsyscall_freebsd_arm.go | 2015 +++++ .../x/sys/unix/zsyscall_freebsd_arm64.go | 2015 +++++ .../x/sys/unix/zsyscall_illumos_amd64.go | 101 + .../golang.org/x/sys/unix/zsyscall_linux.go | 1933 +++++ .../x/sys/unix/zsyscall_linux_386.go | 578 ++ .../x/sys/unix/zsyscall_linux_amd64.go | 745 ++ .../x/sys/unix/zsyscall_linux_arm.go | 715 ++ .../x/sys/unix/zsyscall_linux_arm64.go | 602 ++ .../x/sys/unix/zsyscall_linux_mips.go | 758 ++ .../x/sys/unix/zsyscall_linux_mips64.go | 729 ++ .../x/sys/unix/zsyscall_linux_mips64le.go | 729 ++ .../x/sys/unix/zsyscall_linux_mipsle.go | 758 ++ .../x/sys/unix/zsyscall_linux_ppc64.go | 807 ++ .../x/sys/unix/zsyscall_linux_ppc64le.go | 807 ++ .../x/sys/unix/zsyscall_linux_riscv64.go | 582 ++ .../x/sys/unix/zsyscall_linux_s390x.go | 577 ++ .../x/sys/unix/zsyscall_linux_sparc64.go | 740 ++ .../x/sys/unix/zsyscall_netbsd_386.go | 1851 ++++ .../x/sys/unix/zsyscall_netbsd_amd64.go | 1851 ++++ .../x/sys/unix/zsyscall_netbsd_arm.go | 1851 ++++ .../x/sys/unix/zsyscall_netbsd_arm64.go | 1851 ++++ .../x/sys/unix/zsyscall_openbsd_386.go | 1692 ++++ .../x/sys/unix/zsyscall_openbsd_amd64.go | 1692 ++++ .../x/sys/unix/zsyscall_openbsd_arm.go | 1692 ++++ .../x/sys/unix/zsyscall_openbsd_arm64.go | 1692 ++++ .../x/sys/unix/zsyscall_openbsd_mips64.go | 1692 ++++ .../x/sys/unix/zsyscall_solaris_amd64.go | 1967 +++++ .../x/sys/unix/zsysctl_openbsd_386.go | 273 + .../x/sys/unix/zsysctl_openbsd_amd64.go | 271 + .../x/sys/unix/zsysctl_openbsd_arm.go | 273 + .../x/sys/unix/zsysctl_openbsd_arm64.go | 275 + .../x/sys/unix/zsysctl_openbsd_mips64.go | 279 + .../x/sys/unix/zsysnum_darwin_386.go | 437 + .../x/sys/unix/zsysnum_darwin_amd64.go | 439 + .../x/sys/unix/zsysnum_darwin_arm.go | 437 + .../x/sys/unix/zsysnum_darwin_arm64.go | 437 + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 316 + .../x/sys/unix/zsysnum_freebsd_386.go | 396 + .../x/sys/unix/zsysnum_freebsd_amd64.go | 396 + .../x/sys/unix/zsysnum_freebsd_arm.go | 396 + .../x/sys/unix/zsysnum_freebsd_arm64.go | 396 + .../x/sys/unix/zsysnum_linux_386.go | 439 + .../x/sys/unix/zsysnum_linux_amd64.go | 361 + .../x/sys/unix/zsysnum_linux_arm.go | 403 + .../x/sys/unix/zsysnum_linux_arm64.go | 306 + .../x/sys/unix/zsysnum_linux_mips.go | 424 + .../x/sys/unix/zsysnum_linux_mips64.go | 354 + .../x/sys/unix/zsysnum_linux_mips64le.go | 354 + .../x/sys/unix/zsysnum_linux_mipsle.go | 424 + .../x/sys/unix/zsysnum_linux_ppc64.go | 403 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 403 + .../x/sys/unix/zsysnum_linux_riscv64.go | 305 + .../x/sys/unix/zsysnum_linux_s390x.go | 368 + .../x/sys/unix/zsysnum_linux_sparc64.go | 382 + .../x/sys/unix/zsysnum_netbsd_386.go | 274 + .../x/sys/unix/zsysnum_netbsd_amd64.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm64.go | 274 + .../x/sys/unix/zsysnum_openbsd_386.go | 218 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 218 + .../x/sys/unix/zsysnum_openbsd_arm.go | 218 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 217 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 220 + .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 353 + .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 357 + .../x/sys/unix/ztypes_darwin_386.go | 516 ++ .../x/sys/unix/ztypes_darwin_amd64.go | 521 ++ .../x/sys/unix/ztypes_darwin_arm.go | 516 ++ .../x/sys/unix/ztypes_darwin_arm64.go | 521 ++ .../x/sys/unix/ztypes_dragonfly_amd64.go | 470 + .../x/sys/unix/ztypes_freebsd_386.go | 710 ++ .../x/sys/unix/ztypes_freebsd_amd64.go | 713 ++ .../x/sys/unix/ztypes_freebsd_arm.go | 694 ++ .../x/sys/unix/ztypes_freebsd_arm64.go | 691 ++ vendor/golang.org/x/sys/unix/ztypes_linux.go | 3682 ++++++++ .../golang.org/x/sys/unix/ztypes_linux_386.go | 619 ++ .../x/sys/unix/ztypes_linux_amd64.go | 637 ++ .../golang.org/x/sys/unix/ztypes_linux_arm.go | 614 ++ .../x/sys/unix/ztypes_linux_arm64.go | 616 ++ .../x/sys/unix/ztypes_linux_mips.go | 620 ++ .../x/sys/unix/ztypes_linux_mips64.go | 619 ++ .../x/sys/unix/ztypes_linux_mips64le.go | 619 ++ .../x/sys/unix/ztypes_linux_mipsle.go | 620 ++ .../x/sys/unix/ztypes_linux_ppc64.go | 626 ++ .../x/sys/unix/ztypes_linux_ppc64le.go | 626 ++ .../x/sys/unix/ztypes_linux_riscv64.go | 644 ++ .../x/sys/unix/ztypes_linux_s390x.go | 640 ++ .../x/sys/unix/ztypes_linux_sparc64.go | 621 ++ .../x/sys/unix/ztypes_netbsd_386.go | 499 ++ .../x/sys/unix/ztypes_netbsd_amd64.go | 507 ++ .../x/sys/unix/ztypes_netbsd_arm.go | 504 ++ .../x/sys/unix/ztypes_netbsd_arm64.go | 507 ++ .../x/sys/unix/ztypes_openbsd_386.go | 572 ++ .../x/sys/unix/ztypes_openbsd_amd64.go | 572 ++ .../x/sys/unix/ztypes_openbsd_arm.go | 573 ++ .../x/sys/unix/ztypes_openbsd_arm64.go | 566 ++ .../x/sys/unix/ztypes_openbsd_mips64.go | 566 ++ .../x/sys/unix/ztypes_solaris_amd64.go | 441 + vendor/golang.org/x/text/AUTHORS | 3 + vendor/golang.org/x/text/CONTRIBUTORS | 3 + vendor/golang.org/x/text/LICENSE | 27 + vendor/golang.org/x/text/PATENTS | 22 + .../golang.org/x/text/transform/transform.go | 709 ++ .../x/text/unicode/norm/composition.go | 512 ++ .../x/text/unicode/norm/forminfo.go | 278 + .../golang.org/x/text/unicode/norm/input.go | 109 + vendor/golang.org/x/text/unicode/norm/iter.go | 458 + .../x/text/unicode/norm/normalize.go | 609 ++ .../x/text/unicode/norm/readwriter.go | 125 + .../x/text/unicode/norm/tables10.0.0.go | 7657 ++++++++++++++++ .../x/text/unicode/norm/tables11.0.0.go | 7693 ++++++++++++++++ .../x/text/unicode/norm/tables12.0.0.go | 7710 +++++++++++++++++ .../x/text/unicode/norm/tables9.0.0.go | 7637 ++++++++++++++++ .../x/text/unicode/norm/transform.go | 88 + vendor/golang.org/x/text/unicode/norm/trie.go | 54 + vendor/gopkg.in/ini.v1/.gitignore | 6 + vendor/gopkg.in/ini.v1/.travis.yml | 20 + vendor/gopkg.in/ini.v1/LICENSE | 191 + vendor/gopkg.in/ini.v1/Makefile | 15 + vendor/gopkg.in/ini.v1/README.md | 39 + vendor/gopkg.in/ini.v1/data_source.go | 74 + vendor/gopkg.in/ini.v1/deprecated.go | 25 + vendor/gopkg.in/ini.v1/error.go | 34 + vendor/gopkg.in/ini.v1/file.go | 418 + vendor/gopkg.in/ini.v1/helper.go | 24 + vendor/gopkg.in/ini.v1/ini.go | 166 + vendor/gopkg.in/ini.v1/key.go | 801 ++ vendor/gopkg.in/ini.v1/parser.go | 526 ++ vendor/gopkg.in/ini.v1/section.go | 256 + vendor/gopkg.in/ini.v1/struct.go | 603 ++ vendor/gopkg.in/yaml.v2/.travis.yml | 12 + vendor/gopkg.in/yaml.v2/LICENSE | 201 + vendor/gopkg.in/yaml.v2/LICENSE.libyaml | 31 + vendor/gopkg.in/yaml.v2/NOTICE | 13 + vendor/gopkg.in/yaml.v2/README.md | 133 + vendor/gopkg.in/yaml.v2/apic.go | 739 ++ vendor/gopkg.in/yaml.v2/decode.go | 813 ++ vendor/gopkg.in/yaml.v2/emitterc.go | 1685 ++++ vendor/gopkg.in/yaml.v2/encode.go | 390 + vendor/gopkg.in/yaml.v2/go.mod | 5 + vendor/gopkg.in/yaml.v2/parserc.go | 1095 +++ vendor/gopkg.in/yaml.v2/readerc.go | 412 + vendor/gopkg.in/yaml.v2/resolve.go | 258 + vendor/gopkg.in/yaml.v2/scannerc.go | 2712 ++++++ vendor/gopkg.in/yaml.v2/sorter.go | 113 + vendor/gopkg.in/yaml.v2/writerc.go | 26 + vendor/gopkg.in/yaml.v2/yaml.go | 466 + vendor/gopkg.in/yaml.v2/yamlh.go | 738 ++ vendor/gopkg.in/yaml.v2/yamlprivateh.go | 173 + vendor/modules.txt | 54 + 600 files changed, 242956 insertions(+) create mode 100644 README.md create mode 100644 arrange/arrange.go create mode 100644 auxillary/auxillary.go create mode 100644 config.toml create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 misc/bladerf_calibration_data_05-19-2021.bin create mode 100644 misc/bladerf_firmware_05-19-2021.bin create mode 100644 misc/bladerf_fpga115_metadata_05-19-2021.bin create mode 100644 misc/bladerf_fpga40_metadata_05-19-2021.bin create mode 100644 misc/bladerf_fpgaA4_metadata_05-19-2021.bin create mode 100644 vendor/github.com/erayarslan/go-bladerf/.gitignore create mode 100644 vendor/github.com/erayarslan/go-bladerf/README.md create mode 100644 vendor/github.com/erayarslan/go-bladerf/bladerf.go create mode 100644 vendor/github.com/erayarslan/go-bladerf/enums.go create mode 100644 vendor/github.com/erayarslan/go-bladerf/enums.go.save create mode 100644 vendor/github.com/erayarslan/go-bladerf/error/error.go create mode 100644 vendor/github.com/erayarslan/go-bladerf/go.mod create mode 100644 vendor/github.com/erayarslan/go-bladerf/go.sum create mode 100644 vendor/github.com/erayarslan/go-bladerf/macro_wrapper.c create mode 100644 vendor/github.com/erayarslan/go-bladerf/macro_wrapper.h create mode 100644 vendor/github.com/erayarslan/go-bladerf/macros.go create mode 100644 vendor/github.com/erayarslan/go-bladerf/structs.go create mode 100644 vendor/github.com/fsnotify/fsnotify/.editorconfig create mode 100644 vendor/github.com/fsnotify/fsnotify/.gitignore create mode 100644 vendor/github.com/fsnotify/fsnotify/.travis.yml create mode 100644 vendor/github.com/fsnotify/fsnotify/AUTHORS create mode 100644 vendor/github.com/fsnotify/fsnotify/CHANGELOG.md create mode 100644 vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md create mode 100644 vendor/github.com/fsnotify/fsnotify/LICENSE create mode 100644 vendor/github.com/fsnotify/fsnotify/README.md create mode 100644 vendor/github.com/fsnotify/fsnotify/fen.go create mode 100644 vendor/github.com/fsnotify/fsnotify/fsnotify.go create mode 100644 vendor/github.com/fsnotify/fsnotify/inotify.go create mode 100644 vendor/github.com/fsnotify/fsnotify/inotify_poller.go create mode 100644 vendor/github.com/fsnotify/fsnotify/kqueue.go create mode 100644 vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go create mode 100644 vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go create mode 100644 vendor/github.com/fsnotify/fsnotify/windows.go create mode 100644 vendor/github.com/hashicorp/hcl/.gitignore create mode 100644 vendor/github.com/hashicorp/hcl/.travis.yml create mode 100644 vendor/github.com/hashicorp/hcl/LICENSE create mode 100644 vendor/github.com/hashicorp/hcl/Makefile create mode 100644 vendor/github.com/hashicorp/hcl/README.md create mode 100644 vendor/github.com/hashicorp/hcl/appveyor.yml create mode 100644 vendor/github.com/hashicorp/hcl/decoder.go create mode 100644 vendor/github.com/hashicorp/hcl/go.mod create mode 100644 vendor/github.com/hashicorp/hcl/go.sum create mode 100644 vendor/github.com/hashicorp/hcl/hcl.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/ast/ast.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/ast/walk.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/parser/error.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/parser/parser.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/printer/printer.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/token/position.go create mode 100644 vendor/github.com/hashicorp/hcl/hcl/token/token.go create mode 100644 vendor/github.com/hashicorp/hcl/json/parser/flatten.go create mode 100644 vendor/github.com/hashicorp/hcl/json/parser/parser.go create mode 100644 vendor/github.com/hashicorp/hcl/json/scanner/scanner.go create mode 100644 vendor/github.com/hashicorp/hcl/json/token/position.go create mode 100644 vendor/github.com/hashicorp/hcl/json/token/token.go create mode 100644 vendor/github.com/hashicorp/hcl/lex.go create mode 100644 vendor/github.com/hashicorp/hcl/parse.go create mode 100644 vendor/github.com/magiconair/properties/.gitignore create mode 100644 vendor/github.com/magiconair/properties/.travis.yml create mode 100644 vendor/github.com/magiconair/properties/CHANGELOG.md create mode 100644 vendor/github.com/magiconair/properties/LICENSE create mode 100644 vendor/github.com/magiconair/properties/README.md create mode 100644 vendor/github.com/magiconair/properties/decode.go create mode 100644 vendor/github.com/magiconair/properties/doc.go create mode 100644 vendor/github.com/magiconair/properties/go.mod create mode 100644 vendor/github.com/magiconair/properties/integrate.go create mode 100644 vendor/github.com/magiconair/properties/lex.go create mode 100644 vendor/github.com/magiconair/properties/load.go create mode 100644 vendor/github.com/magiconair/properties/parser.go create mode 100644 vendor/github.com/magiconair/properties/properties.go create mode 100644 vendor/github.com/magiconair/properties/rangecheck.go create mode 100644 vendor/github.com/mattn/go-pointer/LICENSE create mode 100644 vendor/github.com/mattn/go-pointer/README.md create mode 100644 vendor/github.com/mattn/go-pointer/doc.go create mode 100644 vendor/github.com/mattn/go-pointer/pointer.go create mode 100644 vendor/github.com/mitchellh/mapstructure/.travis.yml create mode 100644 vendor/github.com/mitchellh/mapstructure/CHANGELOG.md create mode 100644 vendor/github.com/mitchellh/mapstructure/LICENSE create mode 100644 vendor/github.com/mitchellh/mapstructure/README.md create mode 100644 vendor/github.com/mitchellh/mapstructure/decode_hooks.go create mode 100644 vendor/github.com/mitchellh/mapstructure/error.go create mode 100644 vendor/github.com/mitchellh/mapstructure/go.mod create mode 100644 vendor/github.com/mitchellh/mapstructure/mapstructure.go create mode 100644 vendor/github.com/pelletier/go-toml/.gitignore create mode 100644 vendor/github.com/pelletier/go-toml/.travis.yml create mode 100644 vendor/github.com/pelletier/go-toml/LICENSE create mode 100644 vendor/github.com/pelletier/go-toml/README.md create mode 100644 vendor/github.com/pelletier/go-toml/benchmark.json create mode 100644 vendor/github.com/pelletier/go-toml/benchmark.sh create mode 100644 vendor/github.com/pelletier/go-toml/benchmark.toml create mode 100644 vendor/github.com/pelletier/go-toml/benchmark.yml create mode 100644 vendor/github.com/pelletier/go-toml/doc.go create mode 100644 vendor/github.com/pelletier/go-toml/example-crlf.toml create mode 100644 vendor/github.com/pelletier/go-toml/example.toml create mode 100644 vendor/github.com/pelletier/go-toml/fuzz.go create mode 100644 vendor/github.com/pelletier/go-toml/fuzz.sh create mode 100644 vendor/github.com/pelletier/go-toml/keysparsing.go create mode 100644 vendor/github.com/pelletier/go-toml/lexer.go create mode 100644 vendor/github.com/pelletier/go-toml/marshal.go create mode 100644 vendor/github.com/pelletier/go-toml/marshal_test.toml create mode 100644 vendor/github.com/pelletier/go-toml/parser.go create mode 100644 vendor/github.com/pelletier/go-toml/position.go create mode 100644 vendor/github.com/pelletier/go-toml/test.sh create mode 100644 vendor/github.com/pelletier/go-toml/token.go create mode 100644 vendor/github.com/pelletier/go-toml/toml.go create mode 100644 vendor/github.com/pelletier/go-toml/tomltree_create.go create mode 100644 vendor/github.com/pelletier/go-toml/tomltree_write.go create mode 100644 vendor/github.com/rs/zerolog/.gitignore create mode 100644 vendor/github.com/rs/zerolog/CNAME create mode 100644 vendor/github.com/rs/zerolog/LICENSE create mode 100644 vendor/github.com/rs/zerolog/README.md create mode 100644 vendor/github.com/rs/zerolog/_config.yml create mode 100644 vendor/github.com/rs/zerolog/array.go create mode 100644 vendor/github.com/rs/zerolog/console.go create mode 100644 vendor/github.com/rs/zerolog/context.go create mode 100644 vendor/github.com/rs/zerolog/ctx.go create mode 100644 vendor/github.com/rs/zerolog/encoder.go create mode 100644 vendor/github.com/rs/zerolog/encoder_cbor.go create mode 100644 vendor/github.com/rs/zerolog/encoder_json.go create mode 100644 vendor/github.com/rs/zerolog/event.go create mode 100644 vendor/github.com/rs/zerolog/fields.go create mode 100644 vendor/github.com/rs/zerolog/globals.go create mode 100644 vendor/github.com/rs/zerolog/go.mod create mode 100644 vendor/github.com/rs/zerolog/go.sum create mode 100644 vendor/github.com/rs/zerolog/go112.go create mode 100644 vendor/github.com/rs/zerolog/hook.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/README.md create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/base.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/cbor.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/string.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/time.go create mode 100644 vendor/github.com/rs/zerolog/internal/cbor/types.go create mode 100644 vendor/github.com/rs/zerolog/internal/json/base.go create mode 100644 vendor/github.com/rs/zerolog/internal/json/bytes.go create mode 100644 vendor/github.com/rs/zerolog/internal/json/string.go create mode 100644 vendor/github.com/rs/zerolog/internal/json/time.go create mode 100644 vendor/github.com/rs/zerolog/internal/json/types.go create mode 100644 vendor/github.com/rs/zerolog/log.go create mode 100644 vendor/github.com/rs/zerolog/not_go112.go create mode 100644 vendor/github.com/rs/zerolog/pretty.png create mode 100644 vendor/github.com/rs/zerolog/sampler.go create mode 100644 vendor/github.com/rs/zerolog/syslog.go create mode 100644 vendor/github.com/rs/zerolog/writer.go create mode 100644 vendor/github.com/spf13/afero/.travis.yml create mode 100644 vendor/github.com/spf13/afero/LICENSE.txt create mode 100644 vendor/github.com/spf13/afero/README.md create mode 100644 vendor/github.com/spf13/afero/afero.go create mode 100644 vendor/github.com/spf13/afero/appveyor.yml create mode 100644 vendor/github.com/spf13/afero/basepath.go create mode 100644 vendor/github.com/spf13/afero/cacheOnReadFs.go create mode 100644 vendor/github.com/spf13/afero/const_bsds.go create mode 100644 vendor/github.com/spf13/afero/const_win_unix.go create mode 100644 vendor/github.com/spf13/afero/copyOnWriteFs.go create mode 100644 vendor/github.com/spf13/afero/go.mod create mode 100644 vendor/github.com/spf13/afero/httpFs.go create mode 100644 vendor/github.com/spf13/afero/ioutil.go create mode 100644 vendor/github.com/spf13/afero/lstater.go create mode 100644 vendor/github.com/spf13/afero/match.go create mode 100644 vendor/github.com/spf13/afero/mem/dir.go create mode 100644 vendor/github.com/spf13/afero/mem/dirmap.go create mode 100644 vendor/github.com/spf13/afero/mem/file.go create mode 100644 vendor/github.com/spf13/afero/memmap.go create mode 100644 vendor/github.com/spf13/afero/os.go create mode 100644 vendor/github.com/spf13/afero/path.go create mode 100644 vendor/github.com/spf13/afero/readonlyfs.go create mode 100644 vendor/github.com/spf13/afero/regexpfs.go create mode 100644 vendor/github.com/spf13/afero/unionFile.go create mode 100644 vendor/github.com/spf13/afero/util.go create mode 100644 vendor/github.com/spf13/cast/.gitignore create mode 100644 vendor/github.com/spf13/cast/.travis.yml create mode 100644 vendor/github.com/spf13/cast/LICENSE create mode 100644 vendor/github.com/spf13/cast/Makefile create mode 100644 vendor/github.com/spf13/cast/README.md create mode 100644 vendor/github.com/spf13/cast/cast.go create mode 100644 vendor/github.com/spf13/cast/caste.go create mode 100644 vendor/github.com/spf13/cast/go.mod create mode 100644 vendor/github.com/spf13/cast/go.sum create mode 100644 vendor/github.com/spf13/jwalterweatherman/.gitignore create mode 100644 vendor/github.com/spf13/jwalterweatherman/LICENSE create mode 100644 vendor/github.com/spf13/jwalterweatherman/README.md create mode 100644 vendor/github.com/spf13/jwalterweatherman/default_notepad.go create mode 100644 vendor/github.com/spf13/jwalterweatherman/go.mod create mode 100644 vendor/github.com/spf13/jwalterweatherman/log_counter.go create mode 100644 vendor/github.com/spf13/jwalterweatherman/notepad.go create mode 100644 vendor/github.com/spf13/pflag/.gitignore create mode 100644 vendor/github.com/spf13/pflag/.travis.yml create mode 100644 vendor/github.com/spf13/pflag/LICENSE create mode 100644 vendor/github.com/spf13/pflag/README.md create mode 100644 vendor/github.com/spf13/pflag/bool.go create mode 100644 vendor/github.com/spf13/pflag/bool_slice.go create mode 100644 vendor/github.com/spf13/pflag/bytes.go create mode 100644 vendor/github.com/spf13/pflag/count.go create mode 100644 vendor/github.com/spf13/pflag/duration.go create mode 100644 vendor/github.com/spf13/pflag/duration_slice.go create mode 100644 vendor/github.com/spf13/pflag/flag.go create mode 100644 vendor/github.com/spf13/pflag/float32.go create mode 100644 vendor/github.com/spf13/pflag/float64.go create mode 100644 vendor/github.com/spf13/pflag/golangflag.go create mode 100644 vendor/github.com/spf13/pflag/int.go create mode 100644 vendor/github.com/spf13/pflag/int16.go create mode 100644 vendor/github.com/spf13/pflag/int32.go create mode 100644 vendor/github.com/spf13/pflag/int64.go create mode 100644 vendor/github.com/spf13/pflag/int8.go create mode 100644 vendor/github.com/spf13/pflag/int_slice.go create mode 100644 vendor/github.com/spf13/pflag/ip.go create mode 100644 vendor/github.com/spf13/pflag/ip_slice.go create mode 100644 vendor/github.com/spf13/pflag/ipmask.go create mode 100644 vendor/github.com/spf13/pflag/ipnet.go create mode 100644 vendor/github.com/spf13/pflag/string.go create mode 100644 vendor/github.com/spf13/pflag/string_array.go create mode 100644 vendor/github.com/spf13/pflag/string_slice.go create mode 100644 vendor/github.com/spf13/pflag/string_to_int.go create mode 100644 vendor/github.com/spf13/pflag/string_to_string.go create mode 100644 vendor/github.com/spf13/pflag/uint.go create mode 100644 vendor/github.com/spf13/pflag/uint16.go create mode 100644 vendor/github.com/spf13/pflag/uint32.go create mode 100644 vendor/github.com/spf13/pflag/uint64.go create mode 100644 vendor/github.com/spf13/pflag/uint8.go create mode 100644 vendor/github.com/spf13/pflag/uint_slice.go create mode 100644 vendor/github.com/spf13/viper/.editorconfig create mode 100644 vendor/github.com/spf13/viper/.gitignore create mode 100644 vendor/github.com/spf13/viper/.golangci.yml create mode 100644 vendor/github.com/spf13/viper/LICENSE create mode 100644 vendor/github.com/spf13/viper/Makefile create mode 100644 vendor/github.com/spf13/viper/README.md create mode 100644 vendor/github.com/spf13/viper/flags.go create mode 100644 vendor/github.com/spf13/viper/go.mod create mode 100644 vendor/github.com/spf13/viper/go.sum create mode 100644 vendor/github.com/spf13/viper/util.go create mode 100644 vendor/github.com/spf13/viper/viper.go create mode 100644 vendor/github.com/subosito/gotenv/.env create mode 100644 vendor/github.com/subosito/gotenv/.env.invalid create mode 100644 vendor/github.com/subosito/gotenv/.gitignore create mode 100644 vendor/github.com/subosito/gotenv/.travis.yml create mode 100644 vendor/github.com/subosito/gotenv/CHANGELOG.md create mode 100644 vendor/github.com/subosito/gotenv/LICENSE create mode 100644 vendor/github.com/subosito/gotenv/README.md create mode 100644 vendor/github.com/subosito/gotenv/appveyor.yml create mode 100644 vendor/github.com/subosito/gotenv/gotenv.go create mode 100644 vendor/golang.org/x/sys/AUTHORS create mode 100644 vendor/golang.org/x/sys/CONTRIBUTORS create mode 100644 vendor/golang.org/x/sys/LICENSE create mode 100644 vendor/golang.org/x/sys/PATENTS create mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go create mode 100644 vendor/golang.org/x/sys/unix/.gitignore create mode 100644 vendor/golang.org/x/sys/unix/README.md create mode 100644 vendor/golang.org/x/sys/unix/affinity_linux.go create mode 100644 vendor/golang.org/x/sys/unix/aliases.go create mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mips64x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_solaris_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go create mode 100644 vendor/golang.org/x/sys/unix/cap_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/constants.go create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/dev_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/dev_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/dev_linux.go create mode 100644 vendor/golang.org/x/sys/unix/dev_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/dev_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/dirent.go create mode 100644 vendor/golang.org/x/sys/unix/endian_big.go create mode 100644 vendor/golang.org/x/sys/unix/endian_little.go create mode 100644 vendor/golang.org/x/sys/unix/env_unix.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go create mode 100644 vendor/golang.org/x/sys/unix/fdset.go create mode 100644 vendor/golang.org/x/sys/unix/gccgo.go create mode 100644 vendor/golang.org/x/sys/unix/gccgo_c.c create mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl.go create mode 100644 vendor/golang.org/x/sys/unix/mkall.sh create mode 100644 vendor/golang.org/x/sys/unix/mkerrors.sh create mode 100644 vendor/golang.org/x/sys/unix/pagesize_unix.go create mode 100644 vendor/golang.org/x/sys/unix/pledge_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/ptrace_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/ptrace_ios.go create mode 100644 vendor/golang.org/x/sys/unix/race.go create mode 100644 vendor/golang.org/x/sys/unix/race0.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_linux.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go create mode 100644 vendor/golang.org/x/sys/unix/str.go create mode 100644 vendor/golang.org/x/sys/unix/syscall.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_bsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/timestruct.go create mode 100644 vendor/golang.org/x/sys/unix/unveil_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_x86_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go create mode 100644 vendor/golang.org/x/text/AUTHORS create mode 100644 vendor/golang.org/x/text/CONTRIBUTORS create mode 100644 vendor/golang.org/x/text/LICENSE create mode 100644 vendor/golang.org/x/text/PATENTS create mode 100644 vendor/golang.org/x/text/transform/transform.go create mode 100644 vendor/golang.org/x/text/unicode/norm/composition.go create mode 100644 vendor/golang.org/x/text/unicode/norm/forminfo.go create mode 100644 vendor/golang.org/x/text/unicode/norm/input.go create mode 100644 vendor/golang.org/x/text/unicode/norm/iter.go create mode 100644 vendor/golang.org/x/text/unicode/norm/normalize.go create mode 100644 vendor/golang.org/x/text/unicode/norm/readwriter.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables10.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables11.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables12.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables9.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/transform.go create mode 100644 vendor/golang.org/x/text/unicode/norm/trie.go create mode 100644 vendor/gopkg.in/ini.v1/.gitignore create mode 100644 vendor/gopkg.in/ini.v1/.travis.yml create mode 100644 vendor/gopkg.in/ini.v1/LICENSE create mode 100644 vendor/gopkg.in/ini.v1/Makefile create mode 100644 vendor/gopkg.in/ini.v1/README.md create mode 100644 vendor/gopkg.in/ini.v1/data_source.go create mode 100644 vendor/gopkg.in/ini.v1/deprecated.go create mode 100644 vendor/gopkg.in/ini.v1/error.go create mode 100644 vendor/gopkg.in/ini.v1/file.go create mode 100644 vendor/gopkg.in/ini.v1/helper.go create mode 100644 vendor/gopkg.in/ini.v1/ini.go create mode 100644 vendor/gopkg.in/ini.v1/key.go create mode 100644 vendor/gopkg.in/ini.v1/parser.go create mode 100644 vendor/gopkg.in/ini.v1/section.go create mode 100644 vendor/gopkg.in/ini.v1/struct.go create mode 100644 vendor/gopkg.in/yaml.v2/.travis.yml create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE.libyaml create mode 100644 vendor/gopkg.in/yaml.v2/NOTICE create mode 100644 vendor/gopkg.in/yaml.v2/README.md create mode 100644 vendor/gopkg.in/yaml.v2/apic.go create mode 100644 vendor/gopkg.in/yaml.v2/decode.go create mode 100644 vendor/gopkg.in/yaml.v2/emitterc.go create mode 100644 vendor/gopkg.in/yaml.v2/encode.go create mode 100644 vendor/gopkg.in/yaml.v2/go.mod create mode 100644 vendor/gopkg.in/yaml.v2/parserc.go create mode 100644 vendor/gopkg.in/yaml.v2/readerc.go create mode 100644 vendor/gopkg.in/yaml.v2/resolve.go create mode 100644 vendor/gopkg.in/yaml.v2/scannerc.go create mode 100644 vendor/gopkg.in/yaml.v2/sorter.go create mode 100644 vendor/gopkg.in/yaml.v2/writerc.go create mode 100644 vendor/gopkg.in/yaml.v2/yaml.go create mode 100644 vendor/gopkg.in/yaml.v2/yamlh.go create mode 100644 vendor/gopkg.in/yaml.v2/yamlprivateh.go create mode 100644 vendor/modules.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..b143b44 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# blade[rf]runner + +#### it runs bladerf devices - get it? +-- + +### super sick nasty features + +* literally only dumps bladerf device info and doesn't do anything yet +* **logging** + - json + - pretty printing + +* **configuration** + - toml + +* **hype beast shit** + - the name + - kinda sick banner + - **oh just you fuckin wait pal** + +-- + +### shit i'll prolly do + +* what kind of question is that? + - what are you, a cop? \ No newline at end of file diff --git a/arrange/arrange.go b/arrange/arrange.go new file mode 100644 index 0000000..a486cd4 --- /dev/null +++ b/arrange/arrange.go @@ -0,0 +1,192 @@ +// arrange will be used to initialize and manage a toml configuration file for our application +package arrange + +import ( + "bytes" + "github.com/rs/zerolog" + "github.com/spf13/viper" + "io/ioutil" + "strings" + //"io" + "os" +) + +// Define config variables here so that the scope will be easily accessible from main.go +var Debug bool +var LogDir string + +//////////////////////////////////// + +var f *os.File +var err error +var forcedebug bool +var customconfig bool + +//////////// Application version information // +var Version string = "0.0" +var Title string = "changeme" + +var appLabel string = Title + " " + Version + +/////////////////////////////////////////////// + +var Config *viper.Viper +var log zerolog.Logger + +//////// Configuration file details +var configLocations []string + +var home string + +func acquireClue() { + + // define proper console output before we determine a log file location + log = PreLog() + + + if home, err = os.UserHomeDir(); err != nil { + log.Fatal().Err(err).Msg("failed to determine user's home directory, we will not be able to load our configuration if it is stored there!") + } + + /////////////////////////////////////////////////////////////////// + // define locations we will look for our toml configuration file // + /////////////////////////////////////////////////////////////////// + +// var titles = []string{Title, "config", "default"} + + // e.g: /home/fuckhole/.jonesapp/config.toml + configLocations = append(configLocations, home+"/."+Title+"/") + // e.g: /home/fuckhole/.config/jonesapp.toml + configLocations = append(configLocations, home+"/."+Title+"/") + // e.g: /etc/jonesapp/config.toml + configLocations = append(configLocations, "/etc/"+Title+"/") + // e.g: /home/fuckhole/Workshop/jonesapp/config.toml + configLocations = append(configLocations, "./") + // e.g: /home/fuckhole/Workshop/jonesapp/.config/config.toml + configLocations = append(configLocations, "./.config/") + + /////////////////////////////////////////////////////////////////// + +} + +// Prelog is to temporarily define pretty printing before we finish initializing our json logger +func PreLog() zerolog.Logger { + return zerolog.New(zerolog.ConsoleWriter{Out: os.Stderr}).With().Timestamp().Logger() +} + +// Blueprint will initialize our toml configuration engine and define our default configuration values which can be written to a new configuration file if desired +func Blueprint() { + + acquireClue() + + Config = viper.New() + + ///////////////////// defaults ////// + defName := Title + + defGlobal := map[string]interface{}{ + "debug": true, + "log_directory": "./.logs", + } + + /* + // here we are defining a generic category as an example + defCategory := map[string]interface{}{ + "shouldistay": true, + "shouldigo": false, + "optics": "ironsights", + "fucksgiven": 0, + // e.g: /home/fuckhole/.jonesapp/config.toml + //"admins": []string{"Satan", "Yahweh", "FuckholeJones"}, + } + */ + ///////////////////////////////////// + + Config.SetDefault("name", defName) + Config.SetDefault("global", defGlobal) + //Config.SetDefault("category", defCategory) + + + // handle command line override of the config file location + // e.g: ./app -c /home/fuckhole/jones.toml + for i, arg := range os.Args { + switch arg { + case "-c": + if len(os.Args) <= i-1 { + log.Fatal(). + Msg("syntax error! expected file after -c") + } + log.Warn(). + Str("config", os.Args[i+1]). + Msg("[OVERRIDE] using config file: " + os.Args[i+1]) + if f, err = os.Open(os.Args[i+1]); err != nil { + log.Fatal().Err(err). + Str("target_file", os.Args[i+1]). + Msg("Error using specified logfile") + } + + buf, _ := ioutil.ReadAll(f) + if err = Config.ReadConfig(bytes.NewBuffer(buf)); err != nil { + log.Fatal().Err(err). + Str("target_file", os.Args[i+1]). + Msg("Error using specified logfile") + } + customconfig = true + + case "-d": + forcedebug = true + Debug = true + } + } + + if customconfig { + goto fin + } + + Config.SetConfigType("toml") + Config.SetConfigName("config") + + // iter through our previously defined configuration file locations and add them to the paths searched by viper + for _, loc := range configLocations { + Config.AddConfigPath(loc) + } + + // locate and read the config file + err = Config.ReadInConfig() + // if we can't locate a config file, write one in the same directory as we're executing in based on the maps we defined above + if err != nil { + if strings.Contains(err.Error(), "Not Found in") { + log.Warn(). + Msg("Config file not found! Writing new config to config.toml") + } + + if err := Config.SafeWriteConfigAs("./config.toml"); err != nil { + log.Fatal().Err(err).Msg("Error writing new configuration file") + } + } + + fin: + associate() +} + +// Assignments is where we assign the values of our variables with our configuration values from defaults and/or the config file +func associate() { + + // define loglevel of application + if (!Config.GetBool("global.debug") && !forcedebug) { + Debug = false + zerolog.SetGlobalLevel(zerolog.InfoLevel) + } else { + Debug = true + zerolog.SetGlobalLevel(zerolog.DebugLevel) + } + + log.Info().Str("config", Config.ConfigFileUsed()).Msg("loading configuration directives") + + for _, key := range Config.AllKeys() { + log.Debug().Str("key", key).Msg("LOAD_CONFIG_DIRECTIVE") + } + + // location for our log files generated at runtime + LogDir = Config.GetString("global.log_directory") +} diff --git a/auxillary/auxillary.go b/auxillary/auxillary.go new file mode 100644 index 0000000..28ea441 --- /dev/null +++ b/auxillary/auxillary.go @@ -0,0 +1,33 @@ +package aux + +import ( + "encoding/base64" + "fmt" + "github.com/rs/zerolog" + //"github.com/rs/zerolog/log" + "bladerunner/arrange" + "os" + "time" +) + +var ( + logFile *os.File + err error + banner string = "ICAgX19fXyAgX18gICAgIF9fXyAgX19fX18gX19fX18gCiAgIHx8PSkgIHx8ICAgIHx8PXx8IHx8ICApIHx8PT0gIFIKICAgfHxfKSkgfHxfX3wgfHwgfHwgfHxfLy8gfHxfX18gRgpfX19fXyBfXyBfXyBfXyAgX18gX18gIF9fIF9fX19fIF9fX19fIAp8fF8vLyB8fCB8fCB8fFxcfHwgfHxcXHx8IHx8PT0gIHx8Xy8vIAp8fCBcXCBcXF8vLyB8fCBcfHwgfHwgXHx8IHx8X19fIHx8IFxcIAo=" +) + +func Banner() { + dec, _ := base64.StdEncoding.DecodeString(banner) + fmt.Println(string(dec)) +} + +func LogInit() zerolog.Logger { + if err := os.MkdirAll(arrange.LogDir, 0755); err != nil { + panic("cannot create log directory: " + arrange.LogDir + "(" + err.Error() + ")") + } + if logFile, err = os.OpenFile(arrange.LogDir+time.Now().Format(time.RFC3339)+".log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666); err != nil { + panic("cannot create log file: " + err.Error()) + } + multi := zerolog.MultiLevelWriter(zerolog.ConsoleWriter{Out: os.Stderr}, logFile) + return zerolog.New(multi).With().Timestamp().Logger() +} diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..3ae0724 --- /dev/null +++ b/config.toml @@ -0,0 +1,5 @@ +title = "coke-plate" + +[global] +debug = false +log_directory = "./.logs/" diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1d7465c --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module bladerunner + +go 1.16 + +require ( + github.com/erayarslan/go-bladerf v0.0.2-alpha + github.com/rs/zerolog v1.22.0 + github.com/spf13/viper v1.7.1 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..4fdc182 --- /dev/null +++ b/go.sum @@ -0,0 +1,348 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/erayarslan/go-bladerf v0.0.2-alpha h1:qQewz7VAbIIMztduLanJz1laNU39Z9LXFbayjLnOF/8= +github.com/erayarslan/go-bladerf v0.0.2-alpha/go.mod h1:XKv2NrhebRiGLBUincgseI7HaMtIcFyAv8jLCdm+Um4= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk= +github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gordonklaus/portaudio v0.0.0-20180817120803-00e7307ccd93 h1:TSG+DyZBnazM22ZHyHLeUkzM34ClkJRjIWHTq4btvek= +github.com/gordonklaus/portaudio v0.0.0-20180817120803-00e7307ccd93/go.mod h1:HfYnZi/ARQKG0dwH5HNDmPCHdLiFiBf+SI7DbhW7et4= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/llgcode/draw2d v0.0.0-20180825133448-f52c8a71aff0/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA= +github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY= +github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-pointer v0.0.0-20180825124634-49522c3f3791/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= +github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/myriadrf/limedrv v0.0.0-20190225221912-8583a26e3fce/go.mod h1:/SXVBJBHAVLlvLU1B1n0a0QPcZBtqF1VpH5POPZzuBw= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/quan-to/slog v0.0.0-20190317205605-56a2b4159924/go.mod h1:xc9X6JvWjqAAIox9u4uuolisjwl/GbfkktH6f+nOgqU= +github.com/racerxdl/fastconvert v0.0.0-20190129064530-871b6f6cd82a/go.mod h1:V4kP6uu5nqjDVGhlYMtT/7JG7WJjXnipMGcQ8PFeUqU= +github.com/racerxdl/go.fifo v0.0.0-20180604061744-c6aa83afe374 h1:P2TDDsGEWzzfhAnthdQc+Vwmv/+xEKHwoNFF3Swl6X0= +github.com/racerxdl/go.fifo v0.0.0-20180604061744-c6aa83afe374/go.mod h1:CvYWG6Py4TRzGCUVX2n8+CjE6mrME/+kHkkGmbDA5zw= +github.com/racerxdl/radioserver v0.0.0-20190316070955-f8953f368ce1/go.mod h1:cSQupBUlkn/QhajTmf6QMErp3PbTVT5Xdd5DSiE0hAI= +github.com/racerxdl/radioserver v0.0.0-20190324175745-bd3bd7179419/go.mod h1:N4ejKokz1jnGfAd3KNgO8E6YMCMP4ZgaHXBEdHBQrP8= +github.com/racerxdl/segdsp v0.0.0-20190321214158-1cd3e325e91a/go.mod h1:nQDTqJjqr+YsSQw+CVY58Xag4KVqfoi6TgkSXMHlUO4= +github.com/racerxdl/segdsp v0.0.0-20190413213320-dfaea7c39d3a h1:2QJXxaBOGMsjoZ++ecsek0SE/V4bbraCITBNVji4+4M= +github.com/racerxdl/segdsp v0.0.0-20190413213320-dfaea7c39d3a/go.mod h1:NXNN9LqX1oeK6+o+xm+Dz8ANz+i1uILw4HsL0sq5tzE= +github.com/racerxdl/spy2go v0.0.0-20190103011754-14102c047be5/go.mod h1:ioS4oIwJsgrSeKKPATMpsbJQdi4p2Xsbg3V5j2nCOzM= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.22.0 h1:XrVUjV4K+izZpKXZHlPrYQiDtmdGiCylnT4i43AAWxg= +github.com/rs/zerolog v1.22.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= +github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +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= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +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-20190322120337-addf6b3196f6/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-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +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= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +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-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +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-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/main.go b/main.go new file mode 100644 index 0000000..8e0a130 --- /dev/null +++ b/main.go @@ -0,0 +1,94 @@ +package main + +import ( + "bladerunner/arrange" + "bladerunner/auxillary" + rf "github.com/erayarslan/go-bladerf" + "github.com/rs/zerolog" + "strconv" + "strings" +) + +var log zerolog.Logger +var devlog zerolog.Logger + +// TODO: +//// optional bitcask database initialization +//// fix default config file writing + +func init() { + // style points + aux.Banner() + + // configuration engine + arrange.Blueprint() + + // initialize logger + log = aux.LogInit() + arrange.Blueprint() + + // initialize configuration file/engine + zerolog.SetGlobalLevel(zerolog.InfoLevel) + if arrange.Debug { + zerolog.SetGlobalLevel(zerolog.DebugLevel) + } + + log.Info().Msg("Initialization complete") +} + +func getBlade() { + log.Info().Msg("Attempting to access bladerf device...") + + // after much tomfooling around i found that apparently without calling anything else this will just somehow magically open the first bladerf device it finds + dev, err := rf.Open() + if err != nil { + log.Fatal().Err(err).Msg("DEVICE_ACCESS_FAILURE") + } + + info, err := rf.GetDeviceInfo(dev) + if err != nil { + log.Fatal().Err(err).Msg("DEVICE_INFO_FAILURE") + } + + // define sublogger specific to our device + devlog = log.With(). + Interface("usb_bus", info.UsbBus). + Interface("usb_addr", info.UsbAddr). + Interface("instance", info.Instance). + Logger() + + devlog.Debug().Msg("Connected, retrieving firmware and FPGA information...") + firmware, err := rf.GetFirmwareVersion(dev) + if err != nil { + devlog.Fatal().Err(err).Msg("FIRMWARE_ENUMERATION_FAILURE") + } + firmware_str := strings.Split(rf.PrintVersion(firmware), " ")[0] + + fpgasrc, err := rf.GetFpgaSource(dev) + if err != nil { + devlog.Fatal().Err(err).Msg("FPGA_SRC_ENUMERATION_FAILURE") + } + + fpgasize, err := rf.GetFpgaSize(dev) + if err != nil { + devlog.Fatal().Err(err).Msg("FPGA_SIZE_ENUMERATION_FAILURE") + } + + println() + + label := "[" + strconv.FormatUint(uint64(info.Instance), 10) + "]" + + log.Info().Str("DEVICE_PRODUCT", info.Product).Msg(label) + log.Info().Str("DEVICE_SERIAL", info.Serial).Msg(label) + log.Info().Str("DEVICE_MANUFACTURER", info.Manufacturer).Msg(label) + log.Info().Str("DEVICE_FIRMWARE", firmware_str).Msg(label) + log.Debug().Str("DEVICE_BACKEND", rf.BackendString(info.Backend)).Msg(label) + log.Debug().Interface("DEVICE_SPEED", rf.GetDeviceSpeed(dev)).Msg(label) + log.Debug().Interface("DEVICE_FPGA_SRC", fpgasrc).Interface("DEVICE_FPGA_SIZE", fpgasize).Msg(label) + +} + +func main() { + getBlade() + +} diff --git a/misc/bladerf_calibration_data_05-19-2021.bin b/misc/bladerf_calibration_data_05-19-2021.bin new file mode 100644 index 0000000000000000000000000000000000000000..b6f81ba6a34e891e514ac87346f7e195bdb62f77 GIT binary patch literal 482 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 literal 0 HcmV?d00001 diff --git a/misc/bladerf_fpga115_metadata_05-19-2021.bin b/misc/bladerf_fpga115_metadata_05-19-2021.bin new file mode 100644 index 0000000000000000000000000000000000000000..c121de978baa2731b5cf3d40c1195dcc2caf95f9 GIT binary patch literal 3604706 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%0DdYMZI`Jjog`oKBV2$H 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≷XBjc%(dJZk+ZecgN}1$<`%eb>K5Fy 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

SM|gb1 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

n^bL0!2 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

wXSV6v%YyKK(s`*fW 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∓e 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+z_A7X EAHk?U00000 literal 0 HcmV?d00001 diff --git a/misc/bladerf_fpga40_metadata_05-19-2021.bin b/misc/bladerf_fpga40_metadata_05-19-2021.bin new file mode 100644 index 0000000000000000000000000000000000000000..f849f7c1ab8ec2e6fee6b5180662fb7140b78bf6 GIT binary patch literal 3604706 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%0DdYMZI`Jjog`oKBV2$H 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≷XBjc%(dJZk+ZecgN}1$<`%eb>K5Fy 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

SM|gb1 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

n^bL0!2 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

wXSV6v%YyKK(s`*fW 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∓e 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+z_A7X EAJIZThX4Qo literal 0 HcmV?d00001 diff --git a/misc/bladerf_fpgaA4_metadata_05-19-2021.bin b/misc/bladerf_fpgaA4_metadata_05-19-2021.bin new file mode 100644 index 0000000000000000000000000000000000000000..7def4e644139b62a6b9467c0f6c5399bcb357404 GIT binary patch literal 2687202 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%0Df2SnwBH47o;80 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

H}Qhg{Rs4eV^)UzfILDm0__;| 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�TXFsjZd`eQ%X@X@KJ~XF>)F| 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 S4WSBSypS=72ljaNu{y@A|AJ@x%{> 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%0D{}cpvDhsWOM>{A`<>BQ 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 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 z=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSV zlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f# z!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8=?kSVlv*f#!D_&8 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 S00AHX1b_e#00KZDAn<=yCT_6+ literal 0 HcmV?d00001 diff --git a/vendor/github.com/erayarslan/go-bladerf/.gitignore b/vendor/github.com/erayarslan/go-bladerf/.gitignore new file mode 100644 index 0000000..5b36754 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/.gitignore @@ -0,0 +1,52 @@ +.DS_Store +.idea/ +*.[56789ao] +*.a[56789o] +*.so +*.pyc +._* +.nfs.* +[56789a].out +*~ +*.orig +*.rej +*.exe +.*.swp +core +*.cgo*.go +*.cgo*.c +_cgo_* +_obj +_test +_testmain.go + +/VERSION.cache +/bin/ +/build.out +/doc/articles/wiki/*.bin +/goinstall.log +/last-change +/misc/cgo/life/run.out +/misc/cgo/stdio/run.out +/misc/cgo/testso/main +/pkg/ +/src/*.*/ +/src/cmd/cgo/zdefaultcc.go +/src/cmd/dist/dist +/src/cmd/go/internal/cfg/zdefaultcc.go +/src/cmd/go/internal/cfg/zosarch.go +/src/cmd/internal/objabi/zbootstrap.go +/src/go/build/zcgo.go +/src/go/doc/headscan +/src/runtime/internal/sys/zversion.go +/src/unicode/maketables +/test.out +/test/garbage/*.out +/test/pass.out +/test/run.out +/test/times.out + +# This file includes artifacts of Go build that should not be checked in. +# For files created by specific development environment (e.g. editor), +# use alternative ways to exclude files from git. +# For example, set up .git/info/exclude or use a global .gitignore. \ No newline at end of file diff --git a/vendor/github.com/erayarslan/go-bladerf/README.md b/vendor/github.com/erayarslan/go-bladerf/README.md new file mode 100644 index 0000000..602deb1 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/README.md @@ -0,0 +1,18 @@ +# Go-BladeRF + +`under development "draft"` + +## Examples + +[go-bladerf-examples](https://github.com/erayarslan/go-bladerf-examples) + +## Tested On + +`libbladeRF 2.2.1-MacPorts-20191220-45521019` + +## Notes + +```shell +brew install portaudio +export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/Cellar/portaudio/19.6.0/lib/pkgconfig" +``` \ No newline at end of file diff --git a/vendor/github.com/erayarslan/go-bladerf/bladerf.go b/vendor/github.com/erayarslan/go-bladerf/bladerf.go new file mode 100644 index 0000000..d6068f2 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/bladerf.go @@ -0,0 +1,618 @@ +package bladerf + +import "C" + +// #cgo darwin CFLAGS: -I/usr/local/include +// #cgo darwin LDFLAGS: -L/usr/local/lib +// #cgo LDFLAGS: -lbladeRF +// #include +// +// extern void* StreamCallback(struct bladerf *dev, struct bladerf_stream *stream, struct bladerf_metadata *md, void* samples, size_t num_samples, void* user_data); +import "C" +import ( + "fmt" + exception "github.com/erayarslan/go-bladerf/error" + "github.com/mattn/go-pointer" + "unsafe" +) + +func GetError(code C.int) error { + return exception.New(int(code)) +} + +//export StreamCallback +func StreamCallback( + dev *C.struct_bladerf, + stream *C.struct_bladerf_stream, + metadata *C.struct_bladerf_metadata, + samples unsafe.Pointer, + numSamples C.size_t, + userData unsafe.Pointer, +) unsafe.Pointer { + ud := pointer.Restore(userData).(UserData) + + for i := uint32(0); i < uint32(numSamples); i++ { + ud.results[i] = int16(*((*C.int16_t)(unsafe.Pointer(uintptr(samples) + (C.sizeof_int16_t * uintptr(i)))))) + } + + ud.callback(ud.results) + return samples +} + +func GetVersion() Version { + var version C.struct_bladerf_version + C.bladerf_version(&version) + return NewVersion(&version) +} + +func PrintVersion(version Version) string { + return fmt.Sprintf("v%d.%d.%d", version.major, version.minor, version.patch) +} + +func LoadFpga(bladeRF BladeRF, imagePath string) error { + path := C.CString(imagePath) + defer C.free(unsafe.Pointer(path)) + return GetError(C.bladerf_load_fpga(bladeRF.ref, path)) +} + +func GetFpgaSize(bladeRF BladeRF) (FpgaSize, error) { + var size C.bladerf_fpga_size + err := GetError(C.bladerf_get_fpga_size(bladeRF.ref, &size)) + + if err != nil { + return 0, err + } + + return FpgaSize(size), nil +} + +func GetFpgaSource(bladeRF BladeRF) (FpgaSource, error) { + var source C.bladerf_fpga_source + err := GetError(C.bladerf_get_fpga_source(bladeRF.ref, &source)) + + if err != nil { + return 0, err + } + + return FpgaSource(source), nil +} + +func GetFpgaBytes(bladeRF BladeRF) (uint32, error) { + var size C.size_t + err := GetError(C.bladerf_get_fpga_bytes(bladeRF.ref, &size)) + + if err != nil { + return 0, err + } + + return uint32(size), nil +} + +func GetFpgaFlashSize(bladeRF BladeRF) (uint32, bool, error) { + var size C.uint32_t + var isGuess C.bool + err := GetError(C.bladerf_get_flash_size(bladeRF.ref, &size, &isGuess)) + + if err != nil { + return 0, false, err + } + + return uint32(size), bool(isGuess), nil +} + +func GetFirmwareVersion(bladeRF BladeRF) (Version, error) { + var version C.struct_bladerf_version + err := GetError(C.bladerf_fw_version(bladeRF.ref, &version)) + + if err != nil { + return Version{}, err + } + + return NewVersion(&version), nil +} + +func IsFpgaConfigured(bladeRF BladeRF) (bool, error) { + out := C.bladerf_is_fpga_configured(bladeRF.ref) + + if out < 0 { + return false, GetError(out) + } + + return out == 1, nil +} + +func GetDeviceSpeed(bladeRF BladeRF) DeviceSpeed { + return DeviceSpeed(int(C.bladerf_device_speed(bladeRF.ref))) +} + +func GetFpgaVersion(bladeRF BladeRF) (Version, error) { + var version C.struct_bladerf_version + err := GetError(C.bladerf_fpga_version(bladeRF.ref, &version)) + + if err != nil { + return Version{}, err + } + + return NewVersion(&version), nil +} + +func FreeDeviceList(deviceInfo DeviceInfo) { + C.bladerf_free_device_list(deviceInfo.ref) +} + +func GetDeviceList() ([]DeviceInfo, error) { + var deviceInfo *C.struct_bladerf_devinfo + var devices []DeviceInfo + + codeOrCount := C.bladerf_get_device_list(&deviceInfo) + + if codeOrCount < 0 { + return nil, GetError(codeOrCount) + } + + count := int(codeOrCount) + + if count == 0 { + return make([]DeviceInfo, 0), nil + } + + if count > 0 { + size := unsafe.Sizeof(*deviceInfo) + + for i := 0; i < count; i++ { + devices = append(devices, NewDeviceInfo( + (*C.struct_bladerf_devinfo)(unsafe.Pointer(uintptr(unsafe.Pointer(deviceInfo))+(uintptr(i)*size))), + )) + } + + FreeDeviceList(devices[0]) + } + + return devices, nil +} + +func GetBootloaderList() ([]DeviceInfo, error) { + var deviceInfo *C.struct_bladerf_devinfo + var devices []DeviceInfo + + codeOrCount := C.bladerf_get_bootloader_list(&deviceInfo) + + if codeOrCount < 0 { + return nil, GetError(codeOrCount) + } + + count := int(codeOrCount) + + if count == 0 { + return make([]DeviceInfo, 0), nil + } + + if count > 0 { + size := unsafe.Sizeof(*deviceInfo) + + for i := 0; i < count; i++ { + devices = append(devices, NewDeviceInfo( + (*C.struct_bladerf_devinfo)(unsafe.Pointer(uintptr(unsafe.Pointer(deviceInfo))+(uintptr(i)*size))), + )) + } + + FreeDeviceList(devices[0]) + } + + return devices, nil +} + +func InitDeviceInfo() DeviceInfo { + var deviceInfo C.struct_bladerf_devinfo + C.bladerf_init_devinfo(&deviceInfo) + return NewDeviceInfo(&deviceInfo) +} + +func GetDeviceInfo(bladeRF BladeRF) (DeviceInfo, error) { + var deviceInfo C.struct_bladerf_devinfo + err := GetError(C.bladerf_get_devinfo(bladeRF.ref, &deviceInfo)) + + if err != nil { + return DeviceInfo{}, err + } + + return NewDeviceInfo(&deviceInfo), nil +} + +func DeviceInfoMatches(a DeviceInfo, b DeviceInfo) bool { + return bool(C.bladerf_devinfo_matches(a.ref, b.ref)) +} + +func DeviceStringMatches(deviceString string, deviceInfo DeviceInfo) bool { + val := C.CString(deviceString) + defer C.free(unsafe.Pointer(val)) + + return bool(C.bladerf_devstr_matches(val, deviceInfo.ref)) +} + +func GetDeviceInfoFromString(deviceString string) (DeviceInfo, error) { + val := C.CString(deviceString) + defer C.free(unsafe.Pointer(val)) + + var deviceInfo C.struct_bladerf_devinfo + err := GetError(C.bladerf_get_devinfo_from_str(val, &deviceInfo)) + + if err != nil { + return DeviceInfo{}, err + } + + return NewDeviceInfo(&deviceInfo), nil +} + +func OpenWithDeviceInfo(deviceInfo DeviceInfo) (BladeRF, error) { + var bladeRF *C.struct_bladerf + err := GetError(C.bladerf_open_with_devinfo(&bladeRF, deviceInfo.ref)) + + if err != nil { + return BladeRF{}, err + } + + return BladeRF{ref: bladeRF}, nil +} + +func OpenWithDeviceIdentifier(identify string) (BladeRF, error) { + var bladeRF *C.struct_bladerf + err := GetError(C.bladerf_open(&bladeRF, C.CString(identify))) + + if err != nil { + return BladeRF{}, err + } + + return BladeRF{ref: bladeRF}, nil +} + +func Open() (BladeRF, error) { + var bladeRF *C.struct_bladerf + err := GetError(C.bladerf_open(&bladeRF, nil)) + + if err != nil { + return BladeRF{}, err + } + + return BladeRF{ref: bladeRF}, nil +} + +func Close(bladeRF BladeRF) { + C.bladerf_close(bladeRF.ref) +} + +func SetLoopback(bladeRF BladeRF, loopback Loopback) error { + return GetError(C.bladerf_set_loopback(bladeRF.ref, C.bladerf_loopback(loopback))) +} + +func SetFrequency(bladeRF BladeRF, channel Channel, frequency uint64) error { + return GetError(C.bladerf_set_frequency(bladeRF.ref, C.bladerf_channel(channel), C.bladerf_frequency(frequency))) +} + +func SetSampleRate(bladeRF BladeRF, channel Channel, sampleRate uint) (uint, error) { + var actual C.uint + err := GetError(C.bladerf_set_sample_rate(bladeRF.ref, C.bladerf_channel(channel), C.bladerf_sample_rate(sampleRate), &actual)) + + if err != nil { + return 0, err + } + + return uint(actual), err +} + +func GetRationalSampleRate(bladeRF BladeRF, channel Channel) (RationalRate, error) { + var rate C.struct_bladerf_rational_rate + err := GetError(C.bladerf_get_rational_sample_rate(bladeRF.ref, C.bladerf_channel(channel), &rate)) + + if err != nil { + return RationalRate{}, err + } + + return NewRationalRate(&rate), nil +} + +func GetSampleRateRange(bladeRF BladeRF, channel Channel) (int, int, int, error) { + var bfRange *C.struct_bladerf_range + + err := GetError(C.bladerf_get_sample_rate_range(bladeRF.ref, C.bladerf_channel(channel), &bfRange)) + + if err != nil { + return 0, 0, 0, err + } + + return int(bfRange.min), int(bfRange.max), int(bfRange.step), nil +} + +func SetBandwidth(bladeRF BladeRF, channel Channel, bandwidth uint) (uint, error) { + var actual C.bladerf_bandwidth + err := GetError(C.bladerf_set_bandwidth(bladeRF.ref, C.bladerf_channel(channel), C.bladerf_bandwidth(bandwidth), &actual)) + + if err != nil { + return 0, err + } + + return uint(actual), nil +} + +func SetGain(bladeRF BladeRF, channel Channel, gain int) error { + return GetError(C.bladerf_set_gain(bladeRF.ref, C.bladerf_channel(channel), C.bladerf_gain(gain))) +} + +func GetGain(bladeRF BladeRF, channel Channel) (int, error) { + var gain C.bladerf_gain + err := GetError(C.bladerf_get_gain(bladeRF.ref, C.bladerf_channel(channel), &gain)) + + if err != nil { + return 0, err + } + + return int(gain), nil +} + +func GetGainStage(bladeRF BladeRF, channel Channel, stage string) (int, error) { + val := C.CString(stage) + defer C.free(unsafe.Pointer(val)) + + var gain C.bladerf_gain + err := GetError(C.bladerf_get_gain_stage(bladeRF.ref, C.bladerf_channel(channel), val, &gain)) + + if err != nil { + return 0, err + } + + return int(gain), nil +} + +func GetGainMode(bladeRF BladeRF, channel Channel) (GainMode, error) { + var mode C.bladerf_gain_mode + + err := GetError(C.bladerf_get_gain_mode(bladeRF.ref, C.bladerf_channel(channel), &mode)) + + if err != nil { + return 0, err + } + + return GainMode(mode), nil +} + +func SetGainStage(bladeRF BladeRF, channel Channel, stage string, gain int) error { + val := C.CString(stage) + defer C.free(unsafe.Pointer(val)) + + return GetError(C.bladerf_set_gain_stage(bladeRF.ref, C.bladerf_channel(channel), val, C.bladerf_gain(gain))) +} + +func GetGainStageRange(bladeRF BladeRF, channel Channel, stage string) (Range, error) { + val := C.CString(stage) + defer C.free(unsafe.Pointer(val)) + + var bfRange *C.struct_bladerf_range + err := GetError(C.bladerf_get_gain_stage_range(bladeRF.ref, C.bladerf_channel(channel), val, &bfRange)) + + if err != nil { + return Range{}, err + } + + return Range{ + ref: bfRange, + min: int64(bfRange.min), + max: int64(bfRange.max), + step: int64(bfRange.step), + scale: float64(bfRange.scale), + }, nil +} + +func GetGainRange(bladeRF BladeRF, channel Channel) (Range, error) { + var bfRange *C.struct_bladerf_range + err := GetError(C.bladerf_get_gain_range(bladeRF.ref, C.bladerf_channel(channel), &bfRange)) + + if err != nil { + return Range{}, err + } + + return Range{ + ref: bfRange, + min: int64(bfRange.min), + max: int64(bfRange.max), + step: int64(bfRange.step), + scale: float64(bfRange.scale), + }, nil +} + +func GetNumberOfGainStages(bladeRF BladeRF, channel Channel) (int, error) { + countOrCode := C.bladerf_get_gain_stages(bladeRF.ref, C.bladerf_channel(channel), nil, 0) + + if countOrCode < 0 { + return 0, GetError(countOrCode) + } + + return int(countOrCode), nil +} + +func BackendString(backend Backend) string { + return C.GoString(C.bladerf_backend_str(C.bladerf_backend(backend))) +} + +func GetBoardName(bladeRF BladeRF) string { + return C.GoString(C.bladerf_get_board_name(bladeRF.ref)) +} + +func SetUSBResetOnOpen(enabled bool) { + C.bladerf_set_usb_reset_on_open(C.bool(enabled)) +} + +func GetSerial(bladeRF BladeRF) (string, error) { + var serial C.char + err := GetError(C.bladerf_get_serial(bladeRF.ref, &serial)) + + if err != nil { + return "", err + } + + return C.GoString(&serial), nil +} + +func GetSerialStruct(bladeRF BladeRF) (Serial, error) { + var serial C.struct_bladerf_serial + err := GetError(C.bladerf_get_serial_struct(bladeRF.ref, &serial)) + + if err != nil { + return Serial{}, err + } + + return NewSerial(&serial), nil +} + +func GetGainStages(bladeRF BladeRF, channel Channel) ([]string, error) { + var stage *C.char + var stages []string + + numberOfGainStages, err := GetNumberOfGainStages(bladeRF, channel) + + if err != nil { + return nil, err + } + + countOrCode := C.bladerf_get_gain_stages( + bladeRF.ref, + C.bladerf_channel(channel), + &stage, + C.ulong(numberOfGainStages), + ) + + if countOrCode < 0 { + return nil, GetError(countOrCode) + } + + if countOrCode == 0 { + return make([]string, 0), nil + } + + count := int(countOrCode) + + if count > 0 { + size := unsafe.Sizeof(*stage) + + for i := 0; i < count; i++ { + stages = append(stages, C.GoString( + (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(stage))+(uintptr(i)*size))), + )) + } + } + + return stages, nil +} + +func GetGainModes(bladeRF BladeRF, channel Channel) ([]GainModes, error) { + var gainMode *C.struct_bladerf_gain_modes + var gainModes []GainModes + + countOrCode := C.bladerf_get_gain_modes(bladeRF.ref, C.bladerf_channel(channel), &gainMode) + + if countOrCode < 0 { + return nil, GetError(countOrCode) + } + + if countOrCode == 0 { + return make([]GainModes, 0), nil + } + + count := int(countOrCode) + + if count > 0 { + size := unsafe.Sizeof(*gainMode) + + for i := 0; i < count; i++ { + gainModes = append(gainModes, NewGainModes( + (*C.struct_bladerf_gain_modes)(unsafe.Pointer(uintptr(unsafe.Pointer(gainMode))+(uintptr(i)*size))), + )) + } + } + + return gainModes, nil +} + +func SetGainMode(bladeRF BladeRF, channel Channel, mode GainMode) error { + return GetError(C.bladerf_set_gain_mode(bladeRF.ref, C.bladerf_channel(channel), C.bladerf_gain_mode(mode))) +} + +func EnableModule(bladeRF BladeRF, channel Channel) error { + return GetError(C.bladerf_enable_module(bladeRF.ref, C.bladerf_channel(channel), true)) +} + +func DisableModule(bladeRF BladeRF, channel Channel) error { + return GetError(C.bladerf_enable_module(bladeRF.ref, C.bladerf_channel(channel), false)) +} + +func SyncRX(bladeRF BladeRF, bufferSize uintptr) ([]int16, error) { + var metadata C.struct_bladerf_metadata + start := C.malloc(C.size_t(C.sizeof_int16_t * bufferSize * 2 * 1)) + err := GetError(C.bladerf_sync_rx(bladeRF.ref, start, C.uint(bufferSize), &metadata, 32)) + + if err != nil { + return nil, err + } + + var results []int16 + + for i := 0; i < (int(metadata.actual_count)); i++ { + n := (*C.int16_t)(unsafe.Pointer(uintptr(start) + (C.sizeof_int16_t * uintptr(i)))) + results = append(results, int16(*n)) + } + + return results, nil +} + +func InitStream(bladeRF BladeRF, + format Format, + numBuffers int, samplesPerBuffer int, numTransfers int, callback func(data []int16)) (Stream, error) { + var buffers *unsafe.Pointer + var rxStream *C.struct_bladerf_stream + + stream := Stream{ref: rxStream} + + err := GetError(C.bladerf_init_stream( + &((stream).ref), + bladeRF.ref, + (*[0]byte)((C.StreamCallback)), + &buffers, + C.ulong(numBuffers), + C.bladerf_format(format), + C.ulong(samplesPerBuffer), + C.ulong(numTransfers), + pointer.Save(NewUserData(callback, samplesPerBuffer)), + )) + + if err != nil { + return Stream{}, err + } + + return stream, nil +} + +func DeInitStream(stream Stream) { + C.bladerf_deinit_stream(stream.ref) +} + +func GetStreamTimeout(bladeRF BladeRF, direction Direction) (uint, error) { + var timeout C.uint + err := GetError(C.bladerf_get_stream_timeout(bladeRF.ref, C.bladerf_direction(direction), &timeout)) + + if err != nil { + return 0, err + } + + return uint(timeout), err +} + +func SetStreamTimeout(bladeRF BladeRF, direction Direction, timeout uint) error { + return GetError(C.bladerf_set_stream_timeout(bladeRF.ref, C.bladerf_direction(direction), C.uint(timeout))) +} + +func SyncConfig(bladeRF BladeRF, layout ChannelLayout, format Format, numBuffers uint, bufferSize uint, numTransfers uint, timeout uint) error { + return GetError(C.bladerf_sync_config(bladeRF.ref, C.bladerf_channel_layout(layout), C.bladerf_format(format), C.uint(numBuffers), C.uint(bufferSize), C.uint(numTransfers), C.uint(timeout))) +} + +func StartStream(stream Stream, layout ChannelLayout) error { + return GetError(C.bladerf_stream(stream.ref, C.bladerf_channel_layout(layout))) +} diff --git a/vendor/github.com/erayarslan/go-bladerf/enums.go b/vendor/github.com/erayarslan/go-bladerf/enums.go new file mode 100644 index 0000000..a733c4d --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/enums.go @@ -0,0 +1,126 @@ +package bladerf + +// #include +import "C" + +type Backend int +type Channel int +type ChannelLayout int +type ClockSelect int +type Correction int +type Direction int +type DeviceSpeed int +type Format int +type FpgaSize int +type FpgaSource int +type GainMode int +type Module int +type Loopback int +type PmicRegister int +type PowerSource int +type RxMux int + +const ( + BackendAny Backend = C.BLADERF_BACKEND_ANY + BackendLinux Backend = C.BLADERF_BACKEND_LINUX + BackendLibUSB Backend = C.BLADERF_BACKEND_LIBUSB + BackendCypress Backend = C.BLADERF_BACKEND_CYPRESS + BackendDummy Backend = C.BLADERF_BACKEND_DUMMY +) + +const ( + RxX1 ChannelLayout = C.BLADERF_RX_X1 + TxX1 ChannelLayout = C.BLADERF_TX_X1 + RxX2 ChannelLayout = C.BLADERF_RX_X2 + TxX2 ChannelLayout = C.BLADERF_TX_X2 +) + +const ( + ClockSelectOnboard ClockSelect = C.CLOCK_SELECT_ONBOARD + ClockSelectExternal ClockSelect = C.CLOCK_SELECT_EXTERNAL +) +const ( + CorrectionDcoffI Correction = C.BLADERF_CORR_DCOFF_I + CorrectionDcoffQ Correction = C.BLADERF_CORR_DCOFF_Q + CorrectionPhase Correction = C.BLADERF_CORR_PHASE + CorrectionGain Correction = C.BLADERF_CORR_GAIN +) + +const ( + Tx Direction = C.BLADERF_TX + Rx Direction = C.BLADERF_RX +) + +const ( + SpeedUnknown DeviceSpeed = C.BLADERF_DEVICE_SPEED_UNKNOWN + SpeedHigh DeviceSpeed = C.BLADERF_DEVICE_SPEED_HIGH + SpeedSuper DeviceSpeed = C.BLADERF_DEVICE_SPEED_SUPER +) + +const ( + FormatSc16Q11 Format = C.BLADERF_FORMAT_SC16_Q11 + FormatSc16Q11Meta Format = C.BLADERF_FORMAT_SC16_Q11_META +) + +const ( + FpgaSizeUnknown FpgaSize = C.BLADERF_FPGA_UNKNOWN + FpgaSize40kle FpgaSize = C.BLADERF_FPGA_40KLE + FpgaSize115kle FpgaSize = C.BLADERF_FPGA_115KLE + FpgaSizeA4 FpgaSize = C.BLADERF_FPGA_A4 + FpgaSizeA9 FpgaSize = C.BLADERF_FPGA_A9 +) + +const ( + FpgaSourceUnknown FpgaSource = C.BLADERF_FPGA_SOURCE_UNKNOWN + FpgaSourceFlash FpgaSource = C.BLADERF_FPGA_SOURCE_FLASH + FpgaSourceHost FpgaSource = C.BLADERF_FPGA_SOURCE_HOST +) + +const ( + GainModeDefault GainMode = C.BLADERF_GAIN_DEFAULT + GainModeManual GainMode = C.BLADERF_GAIN_MGC + GainModeFastAttackAgc GainMode = C.BLADERF_GAIN_FASTATTACK_AGC + GainModeSlowAttackAgc GainMode = C.BLADERF_GAIN_SLOWATTACK_AGC + GainModeHybridAgc GainMode = C.BLADERF_GAIN_HYBRID_AGC +) + +const ( + ModuleTx Module = C.BLADERF_MODULE_TX + ModuleRx Module = C.BLADERF_MODULE_RX +) + +const ( + LoopbackDisabled Loopback = C.BLADERF_LB_NONE + LoopbackFirmware Loopback = C.BLADERF_LB_FIRMWARE + LoopbackBbTxlpfRxvga2 Loopback = C.BLADERF_LB_BB_TXLPF_RXVGA2 + LoopbackBbTxvga1Rxvga2 Loopback = C.BLADERF_LB_BB_TXVGA1_RXVGA2 + LoopbackBbTxlpfRxlpf Loopback = C.BLADERF_LB_BB_TXLPF_RXLPF + LoopbackBbTxvga1Rxlpf Loopback = C.BLADERF_LB_BB_TXVGA1_RXLPF + LoopbackRfLna1 Loopback = C.BLADERF_LB_RF_LNA1 + LoopbackRfLna2 Loopback = C.BLADERF_LB_RF_LNA2 + LoopbackRfLna3 Loopback = C.BLADERF_LB_RF_LNA3 + LoopbackRficBist Loopback = C.BLADERF_LB_RFIC_BIST +) + +const ( + PmicConfiguration PmicRegister = C.BLADERF_PMIC_CONFIGURATION + PmicVoltageShunt PmicRegister = C.BLADERF_PMIC_VOLTAGE_SHUNT + PmicVoltageBus PmicRegister = C.BLADERF_PMIC_VOLTAGE_BUS + PmicPower PmicRegister = C.BLADERF_PMIC_POWER + PmicCurrent PmicRegister = C.BLADERF_PMIC_CURRENT + PmicCalibration PmicRegister = C.BLADERF_PMIC_CALIBRATION +) + +const ( + PsUnknown PowerSource = C.BLADERF_UNKNOWN + PsDc PowerSource = C.BLADERF_PS_DC + PsUsbVbus PowerSource = C.BLADERF_PS_USB_VBUS +) + +const ( + RxMuxInvalid RxMux = C.BLADERF_RX_MUX_INVALID + RxMuxBaseband RxMux = C.BLADERF_RX_MUX_BASEBAND + RxMux12BitCounter RxMux = C.BLADERF_RX_MUX_12BIT_COUNTER + RxMux32BitCounter RxMux = C.BLADERF_RX_MUX_32BIT_COUNTER + RxMuxDigitalLoopback RxMux = C.BLADERF_RX_MUX_DIGITAL_LOOPBACK +) diff --git a/vendor/github.com/erayarslan/go-bladerf/enums.go.save b/vendor/github.com/erayarslan/go-bladerf/enums.go.save new file mode 100644 index 0000000..737c678 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/enums.go.save @@ -0,0 +1,133 @@ +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +package bladerf + +// #include +import "C" + +type Backend int +type Channel int +type ChannelLayout int +type ClockSelect int +type Correction int +type Direction int +type DeviceSpeed int +type Format int +type FpgaSize int +type FpgaSource int +type GainMode int +type Module int +type Loopback int +type PmicRegister int +type PowerSource int +type RxMux int + +const ( + BackendAny Backend = C.BLADERF_BACKEND_ANY + BackendLinux Backend = C.BLADERF_BACKEND_LINUX + BackendLibUSB Backend = C.BLADERF_BACKEND_LIBUSB + BackendCypress Backend = C.BLADERF_BACKEND_CYPRESS + BackendDummy Backend = C.BLADERF_BACKEND_DUMMY +) + +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +.rw-r--r-- 495 snat 19 May 19:06 motd.txt +const ( +.rw-r--r-- 495 snat 19 May 19:06 motd.txt + RxX1 ChannelLayout = C.BLADERF_RX_X1 + TxX1 ChannelLayout = C.BLADERF_TX_X1 + RxX2 ChannelLayout = C.BLADERF_RX_X2 + TxX2 ChannelLayout = C.BLADERF_TX_X2 +) + +const ( + ClockSelectOnboard ClockSelect = C.CLOCK_SELECT_ONBOARD + ClockSelectExternal ClockSelect = C.CLOCK_SELECT_EXTERNAL +) +const ( + CorrectionDcoffI Correction = C.BLADERF_CORR_DCOFF_I + CorrectionDcoffQ Correction = C.BLADERF_CORR_DCOFF_Q + CorrectionPhase Correction = C.BLADERF_CORR_PHASE + CorrectionGain Correction = C.BLADERF_CORR_GAIN +) + +const ( + Tx Direction = C.BLADERF_TX + Rx Direction = C.BLADERF_RX +) + +const ( + SpeedUnknown DeviceSpeed = C.BLADERF_DEVICE_SPEED_UNKNOWN + SpeedHigh DeviceSpeed = C.BLADERF_DEVICE_SPEED_HIGH + SpeedSuper DeviceSpeed = C.BLADERF_DEVICE_SPEED_SUPER +) + +const ( + FormatSc16Q11 Format = C.BLADERF_FORMAT_SC16_Q11 + FormatSc16Q11Meta Format = C.BLADERF_FORMAT_SC16_Q11_META +) + +const ( + FpgaSizeUnknown FpgaSize = C.BLADERF_FPGA_UNKNOWN + FpgaSize40kle FpgaSize = C.BLADERF_FPGA_40KLE + FpgaSize115kle FpgaSize = C.BLADERF_FPGA_115KLE + FpgaSizeA4 FpgaSize = C.BLADERF_FPGA_A4 + FpgaSizeA9 FpgaSize = C.BLADERF_FPGA_A9 +) + +const ( + FpgaSourceUnknown FpgaSource = C.BLADERF_FPGA_SOURCE_UNKNOWN + FpgaSourceFlash FpgaSource = C.BLADERF_FPGA_SOURCE_FLASH + FpgaSourceHost FpgaSource = C.BLADERF_FPGA_SOURCE_HOST +) + +const ( + GainModeDefault GainMode = C.BLADERF_GAIN_DEFAULT + GainModeManual GainMode = C.BLADERF_GAIN_MGC + GainModeFastAttackAgc GainMode = C.BLADERF_GAIN_FASTATTACK_AGC + GainModeSlowAttackAgc GainMode = C.BLADERF_GAIN_SLOWATTACK_AGC + GainModeHybridAgc GainMode = C.BLADERF_GAIN_HYBRID_AGC +) + +const ( + ModuleTx Module = C.BLADERF_MODULE_TX + ModuleRx Module = C.BLADERF_MODULE_RX +) + +const ( + LoopbackDisabled Loopback = C.BLADERF_LB_NONE + LoopbackFirmware Loopback = C.BLADERF_LB_FIRMWARE + LoopbackBbTxlpfRxvga2 Loopback = C.BLADERF_LB_BB_TXLPF_RXVGA2 + LoopbackBbTxvga1Rxvga2 Loopback = C.BLADERF_LB_BB_TXVGA1_RXVGA2 + LoopbackBbTxlpfRxlpf Loopback = C.BLADERF_LB_BB_TXLPF_RXLPF + LoopbackBbTxvga1Rxlpf Loopback = C.BLADERF_LB_BB_TXVGA1_RXLPF + LoopbackRfLna1 Loopback = C.BLADERF_LB_RF_LNA1 + LoopbackRfLna2 Loopback = C.BLADERF_LB_RF_LNA2 + LoopbackRfLna3 Loopback = C.BLADERF_LB_RF_LNA3 + LoopbackRficBist Loopback = C.BLADERF_LB_RFIC_BIST +) + +const ( + PmicConfiguration PmicRegister = C.BLADERF_PMIC_CONFIGURATION + PmicVoltageShunt PmicRegister = C.BLADERF_PMIC_VOLTAGE_SHUNT + PmicVoltageBus PmicRegister = C.BLADERF_PMIC_VOLTAGE_BUS + PmicPower PmicRegister = C.BLADERF_PMIC_POWER + PmicCurrent PmicRegister = C.BLADERF_PMIC_CURRENT + PmicCalibration PmicRegister = C.BLADERF_PMIC_CALIBRATION +) + +const ( + PsUnknown PowerSource = C.BLADERF_UNKNOWN + PsDc PowerSource = C.BLADERF_PS_DC + PsUsbVbus PowerSource = C.BLADERF_PS_USB_VBUS +) + +const ( + RxMuxInvalid RxMux = C.BLADERF_RX_MUX_INVALID + RxMuxBaseband RxMux = C.BLADERF_RX_MUX_BASEBAND + RxMux12BitCounter RxMux = C.BLADERF_RX_MUX_12BIT_COUNTER + RxMux32BitCounter RxMux = C.BLADERF_RX_MUX_32BIT_COUNTER + RxMuxDigitalLoopback RxMux = C.BLADERF_RX_MUX_DIGITAL_LOOPBACK +) diff --git a/vendor/github.com/erayarslan/go-bladerf/error/error.go b/vendor/github.com/erayarslan/go-bladerf/error/error.go new file mode 100644 index 0000000..c042279 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/error/error.go @@ -0,0 +1,89 @@ +package error + +// #include +import "C" + +type Code int + +const ( + Unexpected Code = -1 + Range Code = -2 + Inval Code = -3 + Mem Code = -4 + Io Code = -5 + Timeout Code = -6 + Nodev Code = -7 + Unsupported Code = -8 + Misaligned Code = -9 + Checksum Code = -10 + NoFile Code = -11 + UpdateFpga Code = -12 + UpdateFw Code = -13 + TimePast Code = -14 + QueueFull Code = -15 + FpgaOp Code = -16 + Permission Code = -17 + WouldBlock Code = -18 + NotInit Code = -19 +) + +func codeToString(code Code) string { + switch code { + case Unexpected: + return "An unexpected failure occurred" + case Range: + return "Provided parameter is out of range" + case Inval: + return "Invalid operation/parameter" + case Mem: + return "Memory allocation error" + case Io: + return "File/Device I/O error" + case Timeout: + return "Operation timed out" + case Nodev: + return "No device(s) available" + case Unsupported: + return "Operation not supported" + case Misaligned: + return "Misaligned flash access" + case Checksum: + return "Invalid checksum" + case NoFile: + return "File not found" + case UpdateFpga: + return "An FPGA update is required" + case UpdateFw: + return "A firmware update is required" + case TimePast: + return "Requested timestamp is in the past" + case QueueFull: + return "Could not enqueue data into full queue" + case FpgaOp: + return "An FPGA operation reported failure" + case Permission: + return "Insufficient permissions for the requested operation" + case WouldBlock: + return "Operation would block, but has been requested to be non-blocking. This indicates to a caller that it may need to retry the operation later." + case NotInit: + return "Device insufficiently initialized for operation" + } + + return "InvalidError" +} + +type errorString struct { + s string +} + +func (e *errorString) Error() string { + return e.s +} + +func New(code int) error { + if code == 0 { + return nil + } + + return &errorString{s: codeToString(Code(code))} +} diff --git a/vendor/github.com/erayarslan/go-bladerf/go.mod b/vendor/github.com/erayarslan/go-bladerf/go.mod new file mode 100644 index 0000000..1f2c0b8 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/go.mod @@ -0,0 +1,10 @@ +module github.com/erayarslan/go-bladerf + +go 1.13 + +require ( + github.com/gordonklaus/portaudio v0.0.0-20180817120803-00e7307ccd93 + github.com/mattn/go-pointer v0.0.1 + github.com/racerxdl/go.fifo v0.0.0-20180604061744-c6aa83afe374 + github.com/racerxdl/segdsp v0.0.0-20190413213320-dfaea7c39d3a +) diff --git a/vendor/github.com/erayarslan/go-bladerf/go.sum b/vendor/github.com/erayarslan/go-bladerf/go.sum new file mode 100644 index 0000000..c75317b --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/go.sum @@ -0,0 +1,58 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk= +github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gordonklaus/portaudio v0.0.0-20180817120803-00e7307ccd93 h1:TSG+DyZBnazM22ZHyHLeUkzM34ClkJRjIWHTq4btvek= +github.com/gordonklaus/portaudio v0.0.0-20180817120803-00e7307ccd93/go.mod h1:HfYnZi/ARQKG0dwH5HNDmPCHdLiFiBf+SI7DbhW7et4= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/llgcode/draw2d v0.0.0-20180825133448-f52c8a71aff0/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA= +github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY= +github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/mattetti/audio v0.0.0-20190404201502-c6aebeb78429 h1:5YWANgpchDSYJ0R6i3ODpZ4KN/1Jm9MZcFDtAtegjNM= +github.com/mattetti/audio v0.0.0-20190404201502-c6aebeb78429/go.mod h1:LlQmBGkOuV/SKzEDXBPKauvN2UqCgzXO2XjecTGj40s= +github.com/mattn/go-pointer v0.0.0-20180825124634-49522c3f3791/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= +github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/myriadrf/limedrv v0.0.0-20190225221912-8583a26e3fce/go.mod h1:/SXVBJBHAVLlvLU1B1n0a0QPcZBtqF1VpH5POPZzuBw= +github.com/oov/audio v0.0.0-20171004131523-88a2be6dbe38 h1:4Upfs5rLQdx7KwBct3bmPYAhWsDDJdx660gYb7Lv9TQ= +github.com/oov/audio v0.0.0-20171004131523-88a2be6dbe38/go.mod h1:Xj06yMta9R1RSKiHmxL0Bo2TB8wiKVnMgA0KVopHHkk= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/quan-to/slog v0.0.0-20190317205605-56a2b4159924/go.mod h1:xc9X6JvWjqAAIox9u4uuolisjwl/GbfkktH6f+nOgqU= +github.com/racerxdl/fastconvert v0.0.0-20190129064530-871b6f6cd82a/go.mod h1:V4kP6uu5nqjDVGhlYMtT/7JG7WJjXnipMGcQ8PFeUqU= +github.com/racerxdl/go.fifo v0.0.0-20180604061744-c6aa83afe374 h1:P2TDDsGEWzzfhAnthdQc+Vwmv/+xEKHwoNFF3Swl6X0= +github.com/racerxdl/go.fifo v0.0.0-20180604061744-c6aa83afe374/go.mod h1:CvYWG6Py4TRzGCUVX2n8+CjE6mrME/+kHkkGmbDA5zw= +github.com/racerxdl/radioserver v0.0.0-20190316070955-f8953f368ce1/go.mod h1:cSQupBUlkn/QhajTmf6QMErp3PbTVT5Xdd5DSiE0hAI= +github.com/racerxdl/radioserver v0.0.0-20190324175745-bd3bd7179419/go.mod h1:N4ejKokz1jnGfAd3KNgO8E6YMCMP4ZgaHXBEdHBQrP8= +github.com/racerxdl/segdsp v0.0.0-20190321214158-1cd3e325e91a/go.mod h1:nQDTqJjqr+YsSQw+CVY58Xag4KVqfoi6TgkSXMHlUO4= +github.com/racerxdl/segdsp v0.0.0-20190413213320-dfaea7c39d3a h1:2QJXxaBOGMsjoZ++ecsek0SE/V4bbraCITBNVji4+4M= +github.com/racerxdl/segdsp v0.0.0-20190413213320-dfaea7c39d3a/go.mod h1:NXNN9LqX1oeK6+o+xm+Dz8ANz+i1uILw4HsL0sq5tzE= +github.com/racerxdl/spy2go v0.0.0-20190103011754-14102c047be5/go.mod h1:ioS4oIwJsgrSeKKPATMpsbJQdi4p2Xsbg3V5j2nCOzM= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190322120337-addf6b3196f6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.c b/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.c new file mode 100644 index 0000000..f44a61e --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.c @@ -0,0 +1,11 @@ +#include "macro_wrapper.h" + +int ChannelRX(const int ch) +{ + return BLADERF_CHANNEL_RX(ch); +} + +int ChannelTX(const int ch) +{ + return BLADERF_CHANNEL_TX(ch); +} \ No newline at end of file diff --git a/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.h b/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.h new file mode 100644 index 0000000..cd92e2e --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/macro_wrapper.h @@ -0,0 +1,4 @@ +#include + +int ChannelRX(const int ch); +int ChannelTX(const int ch); \ No newline at end of file diff --git a/vendor/github.com/erayarslan/go-bladerf/macros.go b/vendor/github.com/erayarslan/go-bladerf/macros.go new file mode 100644 index 0000000..28f2601 --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/macros.go @@ -0,0 +1,12 @@ +package bladerf + +// #include "macro_wrapper.h" +import "C" + +func ChannelRx(ch int) Channel { + return Channel(C.ChannelRX(C.int(ch))) +} + +func ChannelTx(ch int) Channel { + return Channel(C.ChannelTX(C.int(ch))) +} diff --git a/vendor/github.com/erayarslan/go-bladerf/structs.go b/vendor/github.com/erayarslan/go-bladerf/structs.go new file mode 100644 index 0000000..e8d6c6e --- /dev/null +++ b/vendor/github.com/erayarslan/go-bladerf/structs.go @@ -0,0 +1,138 @@ +package bladerf + +// #include +import "C" + +type DeviceInfo struct { + ref *C.struct_bladerf_devinfo + Backend Backend + Serial string + UsbBus int8 + UsbAddr int8 + Instance uint + Manufacturer string + Product string +} + +func NewDeviceInfo(ref *C.struct_bladerf_devinfo) DeviceInfo { + deviceInfo := DeviceInfo{ref: ref} + + var serial []rune + var manufacturer []rune + var product []rune + + for i := range deviceInfo.ref.serial { + if deviceInfo.ref.serial[i] != 0 { + serial = append(serial, rune(deviceInfo.ref.serial[i])) + } + } + + for i := range deviceInfo.ref.manufacturer { + if deviceInfo.ref.manufacturer[i] != 0 { + manufacturer = append(manufacturer, rune(deviceInfo.ref.manufacturer[i])) + } + } + + for i := range deviceInfo.ref.product { + if deviceInfo.ref.product[i] != 0 { + product = append(product, rune(deviceInfo.ref.product[i])) + } + } + + deviceInfo.Backend = Backend(deviceInfo.ref.backend) + deviceInfo.Serial = string(serial) + deviceInfo.UsbBus = int8(deviceInfo.ref.usb_bus) + deviceInfo.UsbAddr = int8(deviceInfo.ref.usb_addr) + deviceInfo.Instance = uint(deviceInfo.ref.instance) + deviceInfo.Manufacturer = string(manufacturer) + deviceInfo.Product = string(product) + + return deviceInfo +} + +type Version struct { + ref *C.struct_bladerf_version + major uint16 + minor uint16 + patch uint16 + describe string +} + +func NewVersion(ref *C.struct_bladerf_version) Version { + version := Version{ref: ref} + + version.major = uint16((*ref).major) + version.minor = uint16((*ref).minor) + version.patch = uint16((*ref).patch) + version.describe = C.GoString((*ref).describe) + + return version +} + +type RationalRate struct { + ref *C.struct_bladerf_rational_rate + integer uint64 + num uint64 + den uint64 +} + +func NewRationalRate(ref *C.struct_bladerf_rational_rate) RationalRate { + return RationalRate{ref: ref, integer: uint64((*ref).integer), num: uint64((*ref).num), den: uint64((*ref).den)} +} + +type Range struct { + ref *C.struct_bladerf_range + min int64 + max int64 + step int64 + scale float64 +} + +type BladeRF struct { + ref *C.struct_bladerf +} + +type Serial struct { + ref *C.struct_bladerf_serial + serial string +} + +func NewSerial(ref *C.struct_bladerf_serial) Serial { + var serial []rune + for i := range (*ref).serial { + if (*ref).serial[i] != 0 { + serial = append(serial, rune((*ref).serial[i])) + } + } + + return Serial{ref: ref, serial: string(serial)} +} + +type Stream struct { + ref *C.struct_bladerf_stream +} + +type GainModes struct { + ref *C.struct_bladerf_gain_modes + name string + mode GainMode +} + +func NewGainModes(ref *C.struct_bladerf_gain_modes) GainModes { + gainModes := GainModes{ref: ref} + + gainModes.name = C.GoString(gainModes.ref.name) + gainModes.mode = GainMode(gainModes.ref.mode) + + return gainModes +} + +type UserData struct { + callback func(data []int16) + results []int16 + bufferSize int +} + +func NewUserData(callback func(data []int16), bufferSize int) UserData { + return UserData{callback: callback, results: make([]int16, bufferSize), bufferSize: bufferSize} +} diff --git a/vendor/github.com/fsnotify/fsnotify/.editorconfig b/vendor/github.com/fsnotify/fsnotify/.editorconfig new file mode 100644 index 0000000..ba49e3c --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 diff --git a/vendor/github.com/fsnotify/fsnotify/.gitignore b/vendor/github.com/fsnotify/fsnotify/.gitignore new file mode 100644 index 0000000..4cd0cba --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.gitignore @@ -0,0 +1,6 @@ +# Setup a Global .gitignore for OS and editor generated files: +# https://help.github.com/articles/ignoring-files +# git config --global core.excludesfile ~/.gitignore_global + +.vagrant +*.sublime-project diff --git a/vendor/github.com/fsnotify/fsnotify/.travis.yml b/vendor/github.com/fsnotify/fsnotify/.travis.yml new file mode 100644 index 0000000..981d1bb --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.travis.yml @@ -0,0 +1,30 @@ +sudo: false +language: go + +go: + - 1.8.x + - 1.9.x + - tip + +matrix: + allow_failures: + - go: tip + fast_finish: true + +before_script: + - go get -u github.com/golang/lint/golint + +script: + - go test -v --race ./... + +after_script: + - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" + - test -z "$(golint ./... | tee /dev/stderr)" + - go vet ./... + +os: + - linux + - osx + +notifications: + email: false diff --git a/vendor/github.com/fsnotify/fsnotify/AUTHORS b/vendor/github.com/fsnotify/fsnotify/AUTHORS new file mode 100644 index 0000000..5ab5d41 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/AUTHORS @@ -0,0 +1,52 @@ +# Names should be added to this file as +# Name or Organization +# The email address is not required for organizations. + +# You can update this list using the following command: +# +# $ git shortlog -se | awk '{print $2 " " $3 " " $4}' + +# Please keep the list sorted. + +Aaron L +Adrien Bustany +Amit Krishnan +Anmol Sethi +Bjørn Erik Pedersen +Bruno Bigras +Caleb Spare +Case Nelson +Chris Howey +Christoffer Buchholz +Daniel Wagner-Hall +Dave Cheney +Evan Phoenix +Francisco Souza +Hari haran +John C Barstow +Kelvin Fo +Ken-ichirou MATSUZAWA +Matt Layher +Nathan Youngman +Nickolai Zeldovich +Patrick +Paul Hammond +Pawel Knap +Pieter Droogendijk +Pursuit92 +Riku Voipio +Rob Figueiredo +Rodrigo Chiossi +Slawek Ligus +Soge Zhang +Tiffany Jernigan +Tilak Sharma +Tom Payne +Travis Cline +Tudor Golubenco +Vahe Khachikyan +Yukang +bronze1man +debrando +henrikedwards +铁哥 diff --git a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md new file mode 100644 index 0000000..be4d7ea --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md @@ -0,0 +1,317 @@ +# Changelog + +## v1.4.7 / 2018-01-09 + +* BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) +* Tests: Fix missing verb on format string (thanks @rchiossi) +* Linux: Fix deadlock in Remove (thanks @aarondl) +* Linux: Watch.Add improvements (avoid race, fix consistency, reduce garbage) (thanks @twpayne) +* Docs: Moved FAQ into the README (thanks @vahe) +* Linux: Properly handle inotify's IN_Q_OVERFLOW event (thanks @zeldovich) +* Docs: replace references to OS X with macOS + +## v1.4.2 / 2016-10-10 + +* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack) + +## v1.4.1 / 2016-10-04 + +* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack) + +## v1.4.0 / 2016-10-01 + +* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie) + +## v1.3.1 / 2016-06-28 + +* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc) + +## v1.3.0 / 2016-04-19 + +* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135) + +## v1.2.10 / 2016-03-02 + +* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj) + +## v1.2.9 / 2016-01-13 + +kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep) + +## v1.2.8 / 2015-12-17 + +* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test) +* inotify: fix race in test +* enable race detection for continuous integration (Linux, Mac, Windows) + +## v1.2.5 / 2015-10-17 + +* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki) +* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken) +* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie) +* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion) + +## v1.2.1 / 2015-10-14 + +* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx) + +## v1.2.0 / 2015-02-08 + +* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD) +* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD) +* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59) + +## v1.1.1 / 2015-02-05 + +* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD) + +## v1.1.0 / 2014-12-12 + +* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43) + * add low-level functions + * only need to store flags on directories + * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13) + * done can be an unbuffered channel + * remove calls to os.NewSyscallError +* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher) +* kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48) +* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) + +## v1.0.4 / 2014-09-07 + +* kqueue: add dragonfly to the build tags. +* Rename source code files, rearrange code so exported APIs are at the top. +* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang) + +## v1.0.3 / 2014-08-19 + +* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36) + +## v1.0.2 / 2014-08-17 + +* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) +* [Fix] Make ./path and path equivalent. (thanks @zhsso) + +## v1.0.0 / 2014-08-15 + +* [API] Remove AddWatch on Windows, use Add. +* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30) +* Minor updates based on feedback from golint. + +## dev / 2014-07-09 + +* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). +* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno) + +## dev / 2014-07-04 + +* kqueue: fix incorrect mutex used in Close() +* Update example to demonstrate usage of Op. + +## dev / 2014-06-28 + +* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4) +* Fix for String() method on Event (thanks Alex Brainman) +* Don't build on Plan 9 or Solaris (thanks @4ad) + +## dev / 2014-06-21 + +* Events channel of type Event rather than *Event. +* [internal] use syscall constants directly for inotify and kqueue. +* [internal] kqueue: rename events to kevents and fileEvent to event. + +## dev / 2014-06-19 + +* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally). +* [internal] remove cookie from Event struct (unused). +* [internal] Event struct has the same definition across every OS. +* [internal] remove internal watch and removeWatch methods. + +## dev / 2014-06-12 + +* [API] Renamed Watch() to Add() and RemoveWatch() to Remove(). +* [API] Pluralized channel names: Events and Errors. +* [API] Renamed FileEvent struct to Event. +* [API] Op constants replace methods like IsCreate(). + +## dev / 2014-06-12 + +* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) + +## dev / 2014-05-23 + +* [API] Remove current implementation of WatchFlags. + * current implementation doesn't take advantage of OS for efficiency + * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes + * no tests for the current implementation + * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195) + +## v0.9.3 / 2014-12-31 + +* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) + +## v0.9.2 / 2014-08-17 + +* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) + +## v0.9.1 / 2014-06-12 + +* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) + +## v0.9.0 / 2014-01-17 + +* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany) +* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare) +* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library. + +## v0.8.12 / 2013-11-13 + +* [API] Remove FD_SET and friends from Linux adapter + +## v0.8.11 / 2013-11-02 + +* [Doc] Add Changelog [#72][] (thanks @nathany) +* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond) + +## v0.8.10 / 2013-10-19 + +* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott) +* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer) +* [Doc] specify OS-specific limits in README (thanks @debrando) + +## v0.8.9 / 2013-09-08 + +* [Doc] Contributing (thanks @nathany) +* [Doc] update package path in example code [#63][] (thanks @paulhammond) +* [Doc] GoCI badge in README (Linux only) [#60][] +* [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany) + +## v0.8.8 / 2013-06-17 + +* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie) + +## v0.8.7 / 2013-06-03 + +* [API] Make syscall flags internal +* [Fix] inotify: ignore event changes +* [Fix] race in symlink test [#45][] (reported by @srid) +* [Fix] tests on Windows +* lower case error messages + +## v0.8.6 / 2013-05-23 + +* kqueue: Use EVT_ONLY flag on Darwin +* [Doc] Update README with full example + +## v0.8.5 / 2013-05-09 + +* [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg) + +## v0.8.4 / 2013-04-07 + +* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz) + +## v0.8.3 / 2013-03-13 + +* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin) +* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin) + +## v0.8.2 / 2013-02-07 + +* [Doc] add Authors +* [Fix] fix data races for map access [#29][] (thanks @fsouza) + +## v0.8.1 / 2013-01-09 + +* [Fix] Windows path separators +* [Doc] BSD License + +## v0.8.0 / 2012-11-09 + +* kqueue: directory watching improvements (thanks @vmirage) +* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto) +* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr) + +## v0.7.4 / 2012-10-09 + +* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji) +* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig) +* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig) +* [Fix] kqueue: modify after recreation of file + +## v0.7.3 / 2012-09-27 + +* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage) +* [Fix] kqueue: no longer get duplicate CREATE events + +## v0.7.2 / 2012-09-01 + +* kqueue: events for created directories + +## v0.7.1 / 2012-07-14 + +* [Fix] for renaming files + +## v0.7.0 / 2012-07-02 + +* [Feature] FSNotify flags +* [Fix] inotify: Added file name back to event path + +## v0.6.0 / 2012-06-06 + +* kqueue: watch files after directory created (thanks @tmc) + +## v0.5.1 / 2012-05-22 + +* [Fix] inotify: remove all watches before Close() + +## v0.5.0 / 2012-05-03 + +* [API] kqueue: return errors during watch instead of sending over channel +* kqueue: match symlink behavior on Linux +* inotify: add `DELETE_SELF` (requested by @taralx) +* [Fix] kqueue: handle EINTR (reported by @robfig) +* [Doc] Godoc example [#1][] (thanks @davecheney) + +## v0.4.0 / 2012-03-30 + +* Go 1 released: build with go tool +* [Feature] Windows support using winfsnotify +* Windows does not have attribute change notifications +* Roll attribute notifications into IsModify + +## v0.3.0 / 2012-02-19 + +* kqueue: add files when watch directory + +## v0.2.0 / 2011-12-30 + +* update to latest Go weekly code + +## v0.1.0 / 2011-10-19 + +* kqueue: add watch on file creation to match inotify +* kqueue: create file event +* inotify: ignore `IN_IGNORED` events +* event String() +* linux: common FileEvent functions +* initial commit + +[#79]: https://github.com/howeyc/fsnotify/pull/79 +[#77]: https://github.com/howeyc/fsnotify/pull/77 +[#72]: https://github.com/howeyc/fsnotify/issues/72 +[#71]: https://github.com/howeyc/fsnotify/issues/71 +[#70]: https://github.com/howeyc/fsnotify/issues/70 +[#63]: https://github.com/howeyc/fsnotify/issues/63 +[#62]: https://github.com/howeyc/fsnotify/issues/62 +[#60]: https://github.com/howeyc/fsnotify/issues/60 +[#59]: https://github.com/howeyc/fsnotify/issues/59 +[#49]: https://github.com/howeyc/fsnotify/issues/49 +[#45]: https://github.com/howeyc/fsnotify/issues/45 +[#40]: https://github.com/howeyc/fsnotify/issues/40 +[#36]: https://github.com/howeyc/fsnotify/issues/36 +[#33]: https://github.com/howeyc/fsnotify/issues/33 +[#29]: https://github.com/howeyc/fsnotify/issues/29 +[#25]: https://github.com/howeyc/fsnotify/issues/25 +[#24]: https://github.com/howeyc/fsnotify/issues/24 +[#21]: https://github.com/howeyc/fsnotify/issues/21 diff --git a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md new file mode 100644 index 0000000..828a60b --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md @@ -0,0 +1,77 @@ +# Contributing + +## Issues + +* Request features and report bugs using the [GitHub Issue Tracker](https://github.com/fsnotify/fsnotify/issues). +* Please indicate the platform you are using fsnotify on. +* A code example to reproduce the problem is appreciated. + +## Pull Requests + +### Contributor License Agreement + +fsnotify is derived from code in the [golang.org/x/exp](https://godoc.org/golang.org/x/exp) package and it may be included [in the standard library](https://github.com/fsnotify/fsnotify/issues/1) in the future. Therefore fsnotify carries the same [LICENSE](https://github.com/fsnotify/fsnotify/blob/master/LICENSE) as Go. Contributors retain their copyright, so you need to fill out a short form before we can accept your contribution: [Google Individual Contributor License Agreement](https://developers.google.com/open-source/cla/individual). + +Please indicate that you have signed the CLA in your pull request. + +### How fsnotify is Developed + +* Development is done on feature branches. +* Tests are run on BSD, Linux, macOS and Windows. +* Pull requests are reviewed and [applied to master][am] using [hub][]. + * Maintainers may modify or squash commits rather than asking contributors to. +* To issue a new release, the maintainers will: + * Update the CHANGELOG + * Tag a version, which will become available through gopkg.in. + +### How to Fork + +For smooth sailing, always use the original import path. Installing with `go get` makes this easy. + +1. Install from GitHub (`go get -u github.com/fsnotify/fsnotify`) +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Ensure everything works and the tests pass (see below) +4. Commit your changes (`git commit -am 'Add some feature'`) + +Contribute upstream: + +1. Fork fsnotify on GitHub +2. Add your remote (`git remote add fork git@github.com:mycompany/repo.git`) +3. Push to the branch (`git push fork my-new-feature`) +4. Create a new Pull Request on GitHub + +This workflow is [thoroughly explained by Katrina Owen](https://splice.com/blog/contributing-open-source-git-repositories-go/). + +### Testing + +fsnotify uses build tags to compile different code on Linux, BSD, macOS, and Windows. + +Before doing a pull request, please do your best to test your changes on multiple platforms, and list which platforms you were able/unable to test on. + +To aid in cross-platform testing there is a Vagrantfile for Linux and BSD. + +* Install [Vagrant](http://www.vagrantup.com/) and [VirtualBox](https://www.virtualbox.org/) +* Setup [Vagrant Gopher](https://github.com/nathany/vagrant-gopher) in your `src` folder. +* Run `vagrant up` from the project folder. You can also setup just one box with `vagrant up linux` or `vagrant up bsd` (note: the BSD box doesn't support Windows hosts at this time, and NFS may prompt for your host OS password) +* Once setup, you can run the test suite on a given OS with a single command `vagrant ssh linux -c 'cd fsnotify/fsnotify; go test'`. +* When you're done, you will want to halt or destroy the Vagrant boxes. + +Notice: fsnotify file system events won't trigger in shared folders. The tests get around this limitation by using the /tmp directory. + +Right now there is no equivalent solution for Windows and macOS, but there are Windows VMs [freely available from Microsoft](http://www.modern.ie/en-us/virtualization-tools#downloads). + +### Maintainers + +Help maintaining fsnotify is welcome. To be a maintainer: + +* Submit a pull request and sign the CLA as above. +* You must be able to run the test suite on Mac, Windows, Linux and BSD. + +To keep master clean, the fsnotify project uses the "apply mail" workflow outlined in Nathaniel Talbott's post ["Merge pull request" Considered Harmful][am]. This requires installing [hub][]. + +All code changes should be internal pull requests. + +Releases are tagged using [Semantic Versioning](http://semver.org/). + +[hub]: https://github.com/github/hub +[am]: http://blog.spreedly.com/2014/06/24/merge-pull-request-considered-harmful/#.VGa5yZPF_Zs diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE new file mode 100644 index 0000000..f21e540 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 The Go Authors. All rights reserved. +Copyright (c) 2012 fsnotify Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md new file mode 100644 index 0000000..3993207 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/README.md @@ -0,0 +1,79 @@ +# File system notifications for Go + +[![GoDoc](https://godoc.org/github.com/fsnotify/fsnotify?status.svg)](https://godoc.org/github.com/fsnotify/fsnotify) [![Go Report Card](https://goreportcard.com/badge/github.com/fsnotify/fsnotify)](https://goreportcard.com/report/github.com/fsnotify/fsnotify) + +fsnotify utilizes [golang.org/x/sys](https://godoc.org/golang.org/x/sys) rather than `syscall` from the standard library. Ensure you have the latest version installed by running: + +```console +go get -u golang.org/x/sys/... +``` + +Cross platform: Windows, Linux, BSD and macOS. + +|Adapter |OS |Status | +|----------|----------|----------| +|inotify |Linux 2.6.27 or later, Android\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| +|kqueue |BSD, macOS, iOS\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| +|ReadDirectoryChangesW|Windows|Supported [![Build status](https://ci.appveyor.com/api/projects/status/ivwjubaih4r0udeh/branch/master?svg=true)](https://ci.appveyor.com/project/NathanYoungman/fsnotify/branch/master)| +|FSEvents |macOS |[Planned](https://github.com/fsnotify/fsnotify/issues/11)| +|FEN |Solaris 11 |[In Progress](https://github.com/fsnotify/fsnotify/issues/12)| +|fanotify |Linux 2.6.37+ | | +|USN Journals |Windows |[Maybe](https://github.com/fsnotify/fsnotify/issues/53)| +|Polling |*All* |[Maybe](https://github.com/fsnotify/fsnotify/issues/9)| + +\* Android and iOS are untested. + +Please see [the documentation](https://godoc.org/github.com/fsnotify/fsnotify) and consult the [FAQ](#faq) for usage information. + +## API stability + +fsnotify is a fork of [howeyc/fsnotify](https://godoc.org/github.com/howeyc/fsnotify) with a new API as of v1.0. The API is based on [this design document](http://goo.gl/MrYxyA). + +All [releases](https://github.com/fsnotify/fsnotify/releases) are tagged based on [Semantic Versioning](http://semver.org/). Further API changes are [planned](https://github.com/fsnotify/fsnotify/milestones), and will be tagged with a new major revision number. + +Go 1.6 supports dependencies located in the `vendor/` folder. Unless you are creating a library, it is recommended that you copy fsnotify into `vendor/github.com/fsnotify/fsnotify` within your project, and likewise for `golang.org/x/sys`. + +## Contributing + +Please refer to [CONTRIBUTING][] before opening an issue or pull request. + +## Example + +See [example_test.go](https://github.com/fsnotify/fsnotify/blob/master/example_test.go). + +## FAQ + +**When a file is moved to another directory is it still being watched?** + +No (it shouldn't be, unless you are watching where it was moved to). + +**When I watch a directory, are all subdirectories watched as well?** + +No, you must add watches for any directory you want to watch (a recursive watcher is on the roadmap [#18][]). + +**Do I have to watch the Error and Event channels in a separate goroutine?** + +As of now, yes. Looking into making this single-thread friendly (see [howeyc #7][#7]) + +**Why am I receiving multiple events for the same file on OS X?** + +Spotlight indexing on OS X can result in multiple events (see [howeyc #62][#62]). A temporary workaround is to add your folder(s) to the *Spotlight Privacy settings* until we have a native FSEvents implementation (see [#11][]). + +**How many files can be watched at once?** + +There are OS-specific limits as to how many watches can be created: +* Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. +* BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. + +[#62]: https://github.com/howeyc/fsnotify/issues/62 +[#18]: https://github.com/fsnotify/fsnotify/issues/18 +[#11]: https://github.com/fsnotify/fsnotify/issues/11 +[#7]: https://github.com/howeyc/fsnotify/issues/7 + +[contributing]: https://github.com/fsnotify/fsnotify/blob/master/CONTRIBUTING.md + +## Related Projects + +* [notify](https://github.com/rjeczalik/notify) +* [fsevents](https://github.com/fsnotify/fsevents) + diff --git a/vendor/github.com/fsnotify/fsnotify/fen.go b/vendor/github.com/fsnotify/fsnotify/fen.go new file mode 100644 index 0000000..ced39cb --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/fen.go @@ -0,0 +1,37 @@ +// Copyright 2010 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. + +// +build solaris + +package fsnotify + +import ( + "errors" +) + +// Watcher watches a set of files, delivering events to a channel. +type Watcher struct { + Events chan Event + Errors chan error +} + +// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. +func NewWatcher() (*Watcher, error) { + return nil, errors.New("FEN based watcher not yet supported for fsnotify\n") +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + return nil +} + +// Add starts watching the named file or directory (non-recursively). +func (w *Watcher) Add(name string) error { + return nil +} + +// Remove stops watching the the named file or directory (non-recursively). +func (w *Watcher) Remove(name string) error { + return nil +} diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go new file mode 100644 index 0000000..190bf0d --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/fsnotify.go @@ -0,0 +1,66 @@ +// 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. + +// +build !plan9 + +// Package fsnotify provides a platform-independent interface for file system notifications. +package fsnotify + +import ( + "bytes" + "errors" + "fmt" +) + +// Event represents a single file system notification. +type Event struct { + Name string // Relative path to the file or directory. + Op Op // File operation that triggered the event. +} + +// Op describes a set of file operations. +type Op uint32 + +// These are the generalized file operations that can trigger a notification. +const ( + Create Op = 1 << iota + Write + Remove + Rename + Chmod +) + +func (op Op) String() string { + // Use a buffer for efficient string concatenation + var buffer bytes.Buffer + + if op&Create == Create { + buffer.WriteString("|CREATE") + } + if op&Remove == Remove { + buffer.WriteString("|REMOVE") + } + if op&Write == Write { + buffer.WriteString("|WRITE") + } + if op&Rename == Rename { + buffer.WriteString("|RENAME") + } + if op&Chmod == Chmod { + buffer.WriteString("|CHMOD") + } + if buffer.Len() == 0 { + return "" + } + return buffer.String()[1:] // Strip leading pipe +} + +// String returns a string representation of the event in the form +// "file: REMOVE|WRITE|..." +func (e Event) String() string { + return fmt.Sprintf("%q: %s", e.Name, e.Op.String()) +} + +// Common errors that can be reported by a watcher +var ErrEventOverflow = errors.New("fsnotify queue overflow") diff --git a/vendor/github.com/fsnotify/fsnotify/inotify.go b/vendor/github.com/fsnotify/fsnotify/inotify.go new file mode 100644 index 0000000..d9fd1b8 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/inotify.go @@ -0,0 +1,337 @@ +// Copyright 2010 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. + +// +build linux + +package fsnotify + +import ( + "errors" + "fmt" + "io" + "os" + "path/filepath" + "strings" + "sync" + "unsafe" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of files, delivering events to a channel. +type Watcher struct { + Events chan Event + Errors chan error + mu sync.Mutex // Map access + fd int + poller *fdPoller + watches map[string]*watch // Map of inotify watches (key: path) + paths map[int]string // Map of watched paths (key: watch descriptor) + done chan struct{} // Channel for sending a "quit message" to the reader goroutine + doneResp chan struct{} // Channel to respond to Close +} + +// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. +func NewWatcher() (*Watcher, error) { + // Create inotify fd + fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC) + if fd == -1 { + return nil, errno + } + // Create epoll + poller, err := newFdPoller(fd) + if err != nil { + unix.Close(fd) + return nil, err + } + w := &Watcher{ + fd: fd, + poller: poller, + watches: make(map[string]*watch), + paths: make(map[int]string), + Events: make(chan Event), + Errors: make(chan error), + done: make(chan struct{}), + doneResp: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +func (w *Watcher) isClosed() bool { + select { + case <-w.done: + return true + default: + return false + } +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + if w.isClosed() { + return nil + } + + // Send 'close' signal to goroutine, and set the Watcher to closed. + close(w.done) + + // Wake up goroutine + w.poller.wake() + + // Wait for goroutine to close + <-w.doneResp + + return nil +} + +// Add starts watching the named file or directory (non-recursively). +func (w *Watcher) Add(name string) error { + name = filepath.Clean(name) + if w.isClosed() { + return errors.New("inotify instance already closed") + } + + const agnosticEvents = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | + unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | + unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF + + var flags uint32 = agnosticEvents + + w.mu.Lock() + defer w.mu.Unlock() + watchEntry := w.watches[name] + if watchEntry != nil { + flags |= watchEntry.flags | unix.IN_MASK_ADD + } + wd, errno := unix.InotifyAddWatch(w.fd, name, flags) + if wd == -1 { + return errno + } + + if watchEntry == nil { + w.watches[name] = &watch{wd: uint32(wd), flags: flags} + w.paths[wd] = name + } else { + watchEntry.wd = uint32(wd) + watchEntry.flags = flags + } + + return nil +} + +// Remove stops watching the named file or directory (non-recursively). +func (w *Watcher) Remove(name string) error { + name = filepath.Clean(name) + + // Fetch the watch. + w.mu.Lock() + defer w.mu.Unlock() + watch, ok := w.watches[name] + + // Remove it from inotify. + if !ok { + return fmt.Errorf("can't remove non-existent inotify watch for: %s", name) + } + + // We successfully removed the watch if InotifyRmWatch doesn't return an + // error, we need to clean up our internal state to ensure it matches + // inotify's kernel state. + delete(w.paths, int(watch.wd)) + delete(w.watches, name) + + // inotify_rm_watch will return EINVAL if the file has been deleted; + // the inotify will already have been removed. + // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously + // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE + // so that EINVAL means that the wd is being rm_watch()ed or its file removed + // by another thread and we have not received IN_IGNORE event. + success, errno := unix.InotifyRmWatch(w.fd, watch.wd) + if success == -1 { + // TODO: Perhaps it's not helpful to return an error here in every case. + // the only two possible errors are: + // EBADF, which happens when w.fd is not a valid file descriptor of any kind. + // EINVAL, which is when fd is not an inotify descriptor or wd is not a valid watch descriptor. + // Watch descriptors are invalidated when they are removed explicitly or implicitly; + // explicitly by inotify_rm_watch, implicitly when the file they are watching is deleted. + return errno + } + + return nil +} + +type watch struct { + wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) + flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) +} + +// readEvents reads from the inotify file descriptor, converts the +// received events into Event objects and sends them via the Events channel +func (w *Watcher) readEvents() { + var ( + buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events + n int // Number of bytes read with read() + errno error // Syscall errno + ok bool // For poller.wait + ) + + defer close(w.doneResp) + defer close(w.Errors) + defer close(w.Events) + defer unix.Close(w.fd) + defer w.poller.close() + + for { + // See if we have been closed. + if w.isClosed() { + return + } + + ok, errno = w.poller.wait() + if errno != nil { + select { + case w.Errors <- errno: + case <-w.done: + return + } + continue + } + + if !ok { + continue + } + + n, errno = unix.Read(w.fd, buf[:]) + // If a signal interrupted execution, see if we've been asked to close, and try again. + // http://man7.org/linux/man-pages/man7/signal.7.html : + // "Before Linux 3.8, reads from an inotify(7) file descriptor were not restartable" + if errno == unix.EINTR { + continue + } + + // unix.Read might have been woken up by Close. If so, we're done. + if w.isClosed() { + return + } + + if n < unix.SizeofInotifyEvent { + var err error + if n == 0 { + // If EOF is received. This should really never happen. + err = io.EOF + } else if n < 0 { + // If an error occurred while reading. + err = errno + } else { + // Read was too short. + err = errors.New("notify: short read in readEvents()") + } + select { + case w.Errors <- err: + case <-w.done: + return + } + continue + } + + var offset uint32 + // We don't know how many events we just read into the buffer + // While the offset points to at least one whole event... + for offset <= uint32(n-unix.SizeofInotifyEvent) { + // Point "raw" to the event in the buffer + raw := (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) + + mask := uint32(raw.Mask) + nameLen := uint32(raw.Len) + + if mask&unix.IN_Q_OVERFLOW != 0 { + select { + case w.Errors <- ErrEventOverflow: + case <-w.done: + return + } + } + + // If the event happened to the watched directory or the watched file, the kernel + // doesn't append the filename to the event, but we would like to always fill the + // the "Name" field with a valid filename. We retrieve the path of the watch from + // the "paths" map. + w.mu.Lock() + name, ok := w.paths[int(raw.Wd)] + // IN_DELETE_SELF occurs when the file/directory being watched is removed. + // This is a sign to clean up the maps, otherwise we are no longer in sync + // with the inotify kernel state which has already deleted the watch + // automatically. + if ok && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { + delete(w.paths, int(raw.Wd)) + delete(w.watches, name) + } + w.mu.Unlock() + + if nameLen > 0 { + // Point "bytes" at the first byte of the filename + bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent])) + // The filename is padded with NULL bytes. TrimRight() gets rid of those. + name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") + } + + event := newEvent(name, mask) + + // Send the events that are not ignored on the events channel + if !event.ignoreLinux(mask) { + select { + case w.Events <- event: + case <-w.done: + return + } + } + + // Move to the next event in the buffer + offset += unix.SizeofInotifyEvent + nameLen + } + } +} + +// Certain types of events can be "ignored" and not sent over the Events +// channel. Such as events marked ignore by the kernel, or MODIFY events +// against files that do not exist. +func (e *Event) ignoreLinux(mask uint32) bool { + // Ignore anything the inotify API says to ignore + if mask&unix.IN_IGNORED == unix.IN_IGNORED { + return true + } + + // If the event is not a DELETE or RENAME, the file must exist. + // Otherwise the event is ignored. + // *Note*: this was put in place because it was seen that a MODIFY + // event was sent after the DELETE. This ignores that MODIFY and + // assumes a DELETE will come or has come if the file doesn't exist. + if !(e.Op&Remove == Remove || e.Op&Rename == Rename) { + _, statErr := os.Lstat(e.Name) + return os.IsNotExist(statErr) + } + return false +} + +// newEvent returns an platform-independent Event based on an inotify mask. +func newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { + e.Op |= Create + } + if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { + e.Op |= Remove + } + if mask&unix.IN_MODIFY == unix.IN_MODIFY { + e.Op |= Write + } + if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { + e.Op |= Rename + } + if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { + e.Op |= Chmod + } + return e +} diff --git a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go new file mode 100644 index 0000000..cc7db4b --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go @@ -0,0 +1,187 @@ +// 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. + +// +build linux + +package fsnotify + +import ( + "errors" + + "golang.org/x/sys/unix" +) + +type fdPoller struct { + fd int // File descriptor (as returned by the inotify_init() syscall) + epfd int // Epoll file descriptor + pipe [2]int // Pipe for waking up +} + +func emptyPoller(fd int) *fdPoller { + poller := new(fdPoller) + poller.fd = fd + poller.epfd = -1 + poller.pipe[0] = -1 + poller.pipe[1] = -1 + return poller +} + +// Create a new inotify poller. +// This creates an inotify handler, and an epoll handler. +func newFdPoller(fd int) (*fdPoller, error) { + var errno error + poller := emptyPoller(fd) + defer func() { + if errno != nil { + poller.close() + } + }() + poller.fd = fd + + // Create epoll fd + poller.epfd, errno = unix.EpollCreate1(0) + if poller.epfd == -1 { + return nil, errno + } + // Create pipe; pipe[0] is the read end, pipe[1] the write end. + errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK) + if errno != nil { + return nil, errno + } + + // Register inotify fd with epoll + event := unix.EpollEvent{ + Fd: int32(poller.fd), + Events: unix.EPOLLIN, + } + errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.fd, &event) + if errno != nil { + return nil, errno + } + + // Register pipe fd with epoll + event = unix.EpollEvent{ + Fd: int32(poller.pipe[0]), + Events: unix.EPOLLIN, + } + errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.pipe[0], &event) + if errno != nil { + return nil, errno + } + + return poller, nil +} + +// Wait using epoll. +// Returns true if something is ready to be read, +// false if there is not. +func (poller *fdPoller) wait() (bool, error) { + // 3 possible events per fd, and 2 fds, makes a maximum of 6 events. + // I don't know whether epoll_wait returns the number of events returned, + // or the total number of events ready. + // I decided to catch both by making the buffer one larger than the maximum. + events := make([]unix.EpollEvent, 7) + for { + n, errno := unix.EpollWait(poller.epfd, events, -1) + if n == -1 { + if errno == unix.EINTR { + continue + } + return false, errno + } + if n == 0 { + // If there are no events, try again. + continue + } + if n > 6 { + // This should never happen. More events were returned than should be possible. + return false, errors.New("epoll_wait returned more events than I know what to do with") + } + ready := events[:n] + epollhup := false + epollerr := false + epollin := false + for _, event := range ready { + if event.Fd == int32(poller.fd) { + if event.Events&unix.EPOLLHUP != 0 { + // This should not happen, but if it does, treat it as a wakeup. + epollhup = true + } + if event.Events&unix.EPOLLERR != 0 { + // If an error is waiting on the file descriptor, we should pretend + // something is ready to read, and let unix.Read pick up the error. + epollerr = true + } + if event.Events&unix.EPOLLIN != 0 { + // There is data to read. + epollin = true + } + } + if event.Fd == int32(poller.pipe[0]) { + if event.Events&unix.EPOLLHUP != 0 { + // Write pipe descriptor was closed, by us. This means we're closing down the + // watcher, and we should wake up. + } + if event.Events&unix.EPOLLERR != 0 { + // If an error is waiting on the pipe file descriptor. + // This is an absolute mystery, and should never ever happen. + return false, errors.New("Error on the pipe descriptor.") + } + if event.Events&unix.EPOLLIN != 0 { + // This is a regular wakeup, so we have to clear the buffer. + err := poller.clearWake() + if err != nil { + return false, err + } + } + } + } + + if epollhup || epollerr || epollin { + return true, nil + } + return false, nil + } +} + +// Close the write end of the poller. +func (poller *fdPoller) wake() error { + buf := make([]byte, 1) + n, errno := unix.Write(poller.pipe[1], buf) + if n == -1 { + if errno == unix.EAGAIN { + // Buffer is full, poller will wake. + return nil + } + return errno + } + return nil +} + +func (poller *fdPoller) clearWake() error { + // You have to be woken up a LOT in order to get to 100! + buf := make([]byte, 100) + n, errno := unix.Read(poller.pipe[0], buf) + if n == -1 { + if errno == unix.EAGAIN { + // Buffer is empty, someone else cleared our wake. + return nil + } + return errno + } + return nil +} + +// Close all poller file descriptors, but not the one passed to it. +func (poller *fdPoller) close() { + if poller.pipe[1] != -1 { + unix.Close(poller.pipe[1]) + } + if poller.pipe[0] != -1 { + unix.Close(poller.pipe[0]) + } + if poller.epfd != -1 { + unix.Close(poller.epfd) + } +} diff --git a/vendor/github.com/fsnotify/fsnotify/kqueue.go b/vendor/github.com/fsnotify/fsnotify/kqueue.go new file mode 100644 index 0000000..86e76a3 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/kqueue.go @@ -0,0 +1,521 @@ +// Copyright 2010 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. + +// +build freebsd openbsd netbsd dragonfly darwin + +package fsnotify + +import ( + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "sync" + "time" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of files, delivering events to a channel. +type Watcher struct { + Events chan Event + Errors chan error + done chan struct{} // Channel for sending a "quit message" to the reader goroutine + + kq int // File descriptor (as returned by the kqueue() syscall). + + mu sync.Mutex // Protects access to watcher data + watches map[string]int // Map of watched file descriptors (key: path). + externalWatches map[string]bool // Map of watches added by user of the library. + dirFlags map[string]uint32 // Map of watched directories to fflags used in kqueue. + paths map[int]pathInfo // Map file descriptors to path names for processing kqueue events. + fileExists map[string]bool // Keep track of if we know this file exists (to stop duplicate create events). + isClosed bool // Set to true when Close() is first called +} + +type pathInfo struct { + name string + isDir bool +} + +// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. +func NewWatcher() (*Watcher, error) { + kq, err := kqueue() + if err != nil { + return nil, err + } + + w := &Watcher{ + kq: kq, + watches: make(map[string]int), + dirFlags: make(map[string]uint32), + paths: make(map[int]pathInfo), + fileExists: make(map[string]bool), + externalWatches: make(map[string]bool), + Events: make(chan Event), + Errors: make(chan error), + done: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return nil + } + w.isClosed = true + + // copy paths to remove while locked + var pathsToRemove = make([]string, 0, len(w.watches)) + for name := range w.watches { + pathsToRemove = append(pathsToRemove, name) + } + w.mu.Unlock() + // unlock before calling Remove, which also locks + + for _, name := range pathsToRemove { + w.Remove(name) + } + + // send a "quit" message to the reader goroutine + close(w.done) + + return nil +} + +// Add starts watching the named file or directory (non-recursively). +func (w *Watcher) Add(name string) error { + w.mu.Lock() + w.externalWatches[name] = true + w.mu.Unlock() + _, err := w.addWatch(name, noteAllEvents) + return err +} + +// Remove stops watching the the named file or directory (non-recursively). +func (w *Watcher) Remove(name string) error { + name = filepath.Clean(name) + w.mu.Lock() + watchfd, ok := w.watches[name] + w.mu.Unlock() + if !ok { + return fmt.Errorf("can't remove non-existent kevent watch for: %s", name) + } + + const registerRemove = unix.EV_DELETE + if err := register(w.kq, []int{watchfd}, registerRemove, 0); err != nil { + return err + } + + unix.Close(watchfd) + + w.mu.Lock() + isDir := w.paths[watchfd].isDir + delete(w.watches, name) + delete(w.paths, watchfd) + delete(w.dirFlags, name) + w.mu.Unlock() + + // Find all watched paths that are in this directory that are not external. + if isDir { + var pathsToRemove []string + w.mu.Lock() + for _, path := range w.paths { + wdir, _ := filepath.Split(path.name) + if filepath.Clean(wdir) == name { + if !w.externalWatches[path.name] { + pathsToRemove = append(pathsToRemove, path.name) + } + } + } + w.mu.Unlock() + for _, name := range pathsToRemove { + // Since these are internal, not much sense in propagating error + // to the user, as that will just confuse them with an error about + // a path they did not explicitly watch themselves. + w.Remove(name) + } + } + + return nil +} + +// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) +const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME + +// keventWaitTime to block on each read from kevent +var keventWaitTime = durationToTimespec(100 * time.Millisecond) + +// addWatch adds name to the watched file set. +// The flags are interpreted as described in kevent(2). +// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. +func (w *Watcher) addWatch(name string, flags uint32) (string, error) { + var isDir bool + // Make ./name and name equivalent + name = filepath.Clean(name) + + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return "", errors.New("kevent instance already closed") + } + watchfd, alreadyWatching := w.watches[name] + // We already have a watch, but we can still override flags. + if alreadyWatching { + isDir = w.paths[watchfd].isDir + } + w.mu.Unlock() + + if !alreadyWatching { + fi, err := os.Lstat(name) + if err != nil { + return "", err + } + + // Don't watch sockets. + if fi.Mode()&os.ModeSocket == os.ModeSocket { + return "", nil + } + + // Don't watch named pipes. + if fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe { + return "", nil + } + + // Follow Symlinks + // Unfortunately, Linux can add bogus symlinks to watch list without + // issue, and Windows can't do symlinks period (AFAIK). To maintain + // consistency, we will act like everything is fine. There will simply + // be no file events for broken symlinks. + // Hence the returns of nil on errors. + if fi.Mode()&os.ModeSymlink == os.ModeSymlink { + name, err = filepath.EvalSymlinks(name) + if err != nil { + return "", nil + } + + w.mu.Lock() + _, alreadyWatching = w.watches[name] + w.mu.Unlock() + + if alreadyWatching { + return name, nil + } + + fi, err = os.Lstat(name) + if err != nil { + return "", nil + } + } + + watchfd, err = unix.Open(name, openMode, 0700) + if watchfd == -1 { + return "", err + } + + isDir = fi.IsDir() + } + + const registerAdd = unix.EV_ADD | unix.EV_CLEAR | unix.EV_ENABLE + if err := register(w.kq, []int{watchfd}, registerAdd, flags); err != nil { + unix.Close(watchfd) + return "", err + } + + if !alreadyWatching { + w.mu.Lock() + w.watches[name] = watchfd + w.paths[watchfd] = pathInfo{name: name, isDir: isDir} + w.mu.Unlock() + } + + if isDir { + // Watch the directory if it has not been watched before, + // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) + w.mu.Lock() + + watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && + (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) + // Store flags so this watch can be updated later + w.dirFlags[name] = flags + w.mu.Unlock() + + if watchDir { + if err := w.watchDirectoryFiles(name); err != nil { + return "", err + } + } + } + return name, nil +} + +// readEvents reads from kqueue and converts the received kevents into +// Event values that it sends down the Events channel. +func (w *Watcher) readEvents() { + eventBuffer := make([]unix.Kevent_t, 10) + +loop: + for { + // See if there is a message on the "done" channel + select { + case <-w.done: + break loop + default: + } + + // Get new events + kevents, err := read(w.kq, eventBuffer, &keventWaitTime) + // EINTR is okay, the syscall was interrupted before timeout expired. + if err != nil && err != unix.EINTR { + select { + case w.Errors <- err: + case <-w.done: + break loop + } + continue + } + + // Flush the events we received to the Events channel + for len(kevents) > 0 { + kevent := &kevents[0] + watchfd := int(kevent.Ident) + mask := uint32(kevent.Fflags) + w.mu.Lock() + path := w.paths[watchfd] + w.mu.Unlock() + event := newEvent(path.name, mask) + + if path.isDir && !(event.Op&Remove == Remove) { + // Double check to make sure the directory exists. This can happen when + // we do a rm -fr on a recursively watched folders and we receive a + // modification event first but the folder has been deleted and later + // receive the delete event + if _, err := os.Lstat(event.Name); os.IsNotExist(err) { + // mark is as delete event + event.Op |= Remove + } + } + + if event.Op&Rename == Rename || event.Op&Remove == Remove { + w.Remove(event.Name) + w.mu.Lock() + delete(w.fileExists, event.Name) + w.mu.Unlock() + } + + if path.isDir && event.Op&Write == Write && !(event.Op&Remove == Remove) { + w.sendDirectoryChangeEvents(event.Name) + } else { + // Send the event on the Events channel. + select { + case w.Events <- event: + case <-w.done: + break loop + } + } + + if event.Op&Remove == Remove { + // Look for a file that may have overwritten this. + // For example, mv f1 f2 will delete f2, then create f2. + if path.isDir { + fileDir := filepath.Clean(event.Name) + w.mu.Lock() + _, found := w.watches[fileDir] + w.mu.Unlock() + if found { + // make sure the directory exists before we watch for changes. When we + // do a recursive watch and perform rm -fr, the parent directory might + // have gone missing, ignore the missing directory and let the + // upcoming delete event remove the watch from the parent directory. + if _, err := os.Lstat(fileDir); err == nil { + w.sendDirectoryChangeEvents(fileDir) + } + } + } else { + filePath := filepath.Clean(event.Name) + if fileInfo, err := os.Lstat(filePath); err == nil { + w.sendFileCreatedEventIfNew(filePath, fileInfo) + } + } + } + + // Move to next event + kevents = kevents[1:] + } + } + + // cleanup + err := unix.Close(w.kq) + if err != nil { + // only way the previous loop breaks is if w.done was closed so we need to async send to w.Errors. + select { + case w.Errors <- err: + default: + } + } + close(w.Events) + close(w.Errors) +} + +// newEvent returns an platform-independent Event based on kqueue Fflags. +func newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { + e.Op |= Remove + } + if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { + e.Op |= Write + } + if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { + e.Op |= Rename + } + if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { + e.Op |= Chmod + } + return e +} + +func newCreateEvent(name string) Event { + return Event{Name: name, Op: Create} +} + +// watchDirectoryFiles to mimic inotify when adding a watch on a directory +func (w *Watcher) watchDirectoryFiles(dirPath string) error { + // Get all files + files, err := ioutil.ReadDir(dirPath) + if err != nil { + return err + } + + for _, fileInfo := range files { + filePath := filepath.Join(dirPath, fileInfo.Name()) + filePath, err = w.internalWatch(filePath, fileInfo) + if err != nil { + return err + } + + w.mu.Lock() + w.fileExists[filePath] = true + w.mu.Unlock() + } + + return nil +} + +// sendDirectoryEvents searches the directory for newly created files +// and sends them over the event channel. This functionality is to have +// the BSD version of fsnotify match Linux inotify which provides a +// create event for files created in a watched directory. +func (w *Watcher) sendDirectoryChangeEvents(dirPath string) { + // Get all files + files, err := ioutil.ReadDir(dirPath) + if err != nil { + select { + case w.Errors <- err: + case <-w.done: + return + } + } + + // Search for new files + for _, fileInfo := range files { + filePath := filepath.Join(dirPath, fileInfo.Name()) + err := w.sendFileCreatedEventIfNew(filePath, fileInfo) + + if err != nil { + return + } + } +} + +// sendFileCreatedEvent sends a create event if the file isn't already being tracked. +func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fileInfo os.FileInfo) (err error) { + w.mu.Lock() + _, doesExist := w.fileExists[filePath] + w.mu.Unlock() + if !doesExist { + // Send create event + select { + case w.Events <- newCreateEvent(filePath): + case <-w.done: + return + } + } + + // like watchDirectoryFiles (but without doing another ReadDir) + filePath, err = w.internalWatch(filePath, fileInfo) + if err != nil { + return err + } + + w.mu.Lock() + w.fileExists[filePath] = true + w.mu.Unlock() + + return nil +} + +func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { + if fileInfo.IsDir() { + // mimic Linux providing delete events for subdirectories + // but preserve the flags used if currently watching subdirectory + w.mu.Lock() + flags := w.dirFlags[name] + w.mu.Unlock() + + flags |= unix.NOTE_DELETE | unix.NOTE_RENAME + return w.addWatch(name, flags) + } + + // watch file to mimic Linux inotify + return w.addWatch(name, noteAllEvents) +} + +// kqueue creates a new kernel event queue and returns a descriptor. +func kqueue() (kq int, err error) { + kq, err = unix.Kqueue() + if kq == -1 { + return kq, err + } + return kq, nil +} + +// register events with the queue +func register(kq int, fds []int, flags int, fflags uint32) error { + changes := make([]unix.Kevent_t, len(fds)) + + for i, fd := range fds { + // SetKevent converts int to the platform-specific types: + unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) + changes[i].Fflags = fflags + } + + // register the events + success, err := unix.Kevent(kq, changes, nil, nil) + if success == -1 { + return err + } + return nil +} + +// read retrieves pending events, or waits until an event occurs. +// A timeout of nil blocks indefinitely, while 0 polls the queue. +func read(kq int, events []unix.Kevent_t, timeout *unix.Timespec) ([]unix.Kevent_t, error) { + n, err := unix.Kevent(kq, nil, events, timeout) + if err != nil { + return nil, err + } + return events[0:n], nil +} + +// durationToTimespec prepares a timeout value +func durationToTimespec(d time.Duration) unix.Timespec { + return unix.NsecToTimespec(d.Nanoseconds()) +} diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go b/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go new file mode 100644 index 0000000..7d8de14 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go @@ -0,0 +1,11 @@ +// Copyright 2013 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. + +// +build freebsd openbsd netbsd dragonfly + +package fsnotify + +import "golang.org/x/sys/unix" + +const openMode = unix.O_NONBLOCK | unix.O_RDONLY diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go b/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go new file mode 100644 index 0000000..9139e17 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go @@ -0,0 +1,12 @@ +// Copyright 2013 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. + +// +build darwin + +package fsnotify + +import "golang.org/x/sys/unix" + +// note: this constant is not defined on BSD +const openMode = unix.O_EVTONLY diff --git a/vendor/github.com/fsnotify/fsnotify/windows.go b/vendor/github.com/fsnotify/fsnotify/windows.go new file mode 100644 index 0000000..09436f3 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/windows.go @@ -0,0 +1,561 @@ +// Copyright 2011 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. + +// +build windows + +package fsnotify + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "runtime" + "sync" + "syscall" + "unsafe" +) + +// Watcher watches a set of files, delivering events to a channel. +type Watcher struct { + Events chan Event + Errors chan error + isClosed bool // Set to true when Close() is first called + mu sync.Mutex // Map access + port syscall.Handle // Handle to completion port + watches watchMap // Map of watches (key: i-number) + input chan *input // Inputs to the reader are sent on this channel + quit chan chan<- error +} + +// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. +func NewWatcher() (*Watcher, error) { + port, e := syscall.CreateIoCompletionPort(syscall.InvalidHandle, 0, 0, 0) + if e != nil { + return nil, os.NewSyscallError("CreateIoCompletionPort", e) + } + w := &Watcher{ + port: port, + watches: make(watchMap), + input: make(chan *input, 1), + Events: make(chan Event, 50), + Errors: make(chan error), + quit: make(chan chan<- error, 1), + } + go w.readEvents() + return w, nil +} + +// Close removes all watches and closes the events channel. +func (w *Watcher) Close() error { + if w.isClosed { + return nil + } + w.isClosed = true + + // Send "quit" message to the reader goroutine + ch := make(chan error) + w.quit <- ch + if err := w.wakeupReader(); err != nil { + return err + } + return <-ch +} + +// Add starts watching the named file or directory (non-recursively). +func (w *Watcher) Add(name string) error { + if w.isClosed { + return errors.New("watcher already closed") + } + in := &input{ + op: opAddWatch, + path: filepath.Clean(name), + flags: sysFSALLEVENTS, + reply: make(chan error), + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +// Remove stops watching the the named file or directory (non-recursively). +func (w *Watcher) Remove(name string) error { + in := &input{ + op: opRemoveWatch, + path: filepath.Clean(name), + reply: make(chan error), + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +const ( + // Options for AddWatch + sysFSONESHOT = 0x80000000 + sysFSONLYDIR = 0x1000000 + + // Events + sysFSACCESS = 0x1 + sysFSALLEVENTS = 0xfff + sysFSATTRIB = 0x4 + sysFSCLOSE = 0x18 + sysFSCREATE = 0x100 + sysFSDELETE = 0x200 + sysFSDELETESELF = 0x400 + sysFSMODIFY = 0x2 + sysFSMOVE = 0xc0 + sysFSMOVEDFROM = 0x40 + sysFSMOVEDTO = 0x80 + sysFSMOVESELF = 0x800 + + // Special events + sysFSIGNORED = 0x8000 + sysFSQOVERFLOW = 0x4000 +) + +func newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { + e.Op |= Create + } + if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { + e.Op |= Remove + } + if mask&sysFSMODIFY == sysFSMODIFY { + e.Op |= Write + } + if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { + e.Op |= Rename + } + if mask&sysFSATTRIB == sysFSATTRIB { + e.Op |= Chmod + } + return e +} + +const ( + opAddWatch = iota + opRemoveWatch +) + +const ( + provisional uint64 = 1 << (32 + iota) +) + +type input struct { + op int + path string + flags uint32 + reply chan error +} + +type inode struct { + handle syscall.Handle + volume uint32 + index uint64 +} + +type watch struct { + ov syscall.Overlapped + ino *inode // i-number + path string // Directory path + mask uint64 // Directory itself is being watched with these notify flags + names map[string]uint64 // Map of names being watched and their notify flags + rename string // Remembers the old name while renaming a file + buf [4096]byte +} + +type indexMap map[uint64]*watch +type watchMap map[uint32]indexMap + +func (w *Watcher) wakeupReader() error { + e := syscall.PostQueuedCompletionStatus(w.port, 0, 0, nil) + if e != nil { + return os.NewSyscallError("PostQueuedCompletionStatus", e) + } + return nil +} + +func getDir(pathname string) (dir string, err error) { + attr, e := syscall.GetFileAttributes(syscall.StringToUTF16Ptr(pathname)) + if e != nil { + return "", os.NewSyscallError("GetFileAttributes", e) + } + if attr&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 { + dir = pathname + } else { + dir, _ = filepath.Split(pathname) + dir = filepath.Clean(dir) + } + return +} + +func getIno(path string) (ino *inode, err error) { + h, e := syscall.CreateFile(syscall.StringToUTF16Ptr(path), + syscall.FILE_LIST_DIRECTORY, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, + nil, syscall.OPEN_EXISTING, + syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED, 0) + if e != nil { + return nil, os.NewSyscallError("CreateFile", e) + } + var fi syscall.ByHandleFileInformation + if e = syscall.GetFileInformationByHandle(h, &fi); e != nil { + syscall.CloseHandle(h) + return nil, os.NewSyscallError("GetFileInformationByHandle", e) + } + ino = &inode{ + handle: h, + volume: fi.VolumeSerialNumber, + index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), + } + return ino, nil +} + +// Must run within the I/O thread. +func (m watchMap) get(ino *inode) *watch { + if i := m[ino.volume]; i != nil { + return i[ino.index] + } + return nil +} + +// Must run within the I/O thread. +func (m watchMap) set(ino *inode, watch *watch) { + i := m[ino.volume] + if i == nil { + i = make(indexMap) + m[ino.volume] = i + } + i[ino.index] = watch +} + +// Must run within the I/O thread. +func (w *Watcher) addWatch(pathname string, flags uint64) error { + dir, err := getDir(pathname) + if err != nil { + return err + } + if flags&sysFSONLYDIR != 0 && pathname != dir { + return nil + } + ino, err := getIno(dir) + if err != nil { + return err + } + w.mu.Lock() + watchEntry := w.watches.get(ino) + w.mu.Unlock() + if watchEntry == nil { + if _, e := syscall.CreateIoCompletionPort(ino.handle, w.port, 0, 0); e != nil { + syscall.CloseHandle(ino.handle) + return os.NewSyscallError("CreateIoCompletionPort", e) + } + watchEntry = &watch{ + ino: ino, + path: dir, + names: make(map[string]uint64), + } + w.mu.Lock() + w.watches.set(ino, watchEntry) + w.mu.Unlock() + flags |= provisional + } else { + syscall.CloseHandle(ino.handle) + } + if pathname == dir { + watchEntry.mask |= flags + } else { + watchEntry.names[filepath.Base(pathname)] |= flags + } + if err = w.startRead(watchEntry); err != nil { + return err + } + if pathname == dir { + watchEntry.mask &= ^provisional + } else { + watchEntry.names[filepath.Base(pathname)] &= ^provisional + } + return nil +} + +// Must run within the I/O thread. +func (w *Watcher) remWatch(pathname string) error { + dir, err := getDir(pathname) + if err != nil { + return err + } + ino, err := getIno(dir) + if err != nil { + return err + } + w.mu.Lock() + watch := w.watches.get(ino) + w.mu.Unlock() + if watch == nil { + return fmt.Errorf("can't remove non-existent watch for: %s", pathname) + } + if pathname == dir { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + watch.mask = 0 + } else { + name := filepath.Base(pathname) + w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + return w.startRead(watch) +} + +// Must run within the I/O thread. +func (w *Watcher) deleteWatch(watch *watch) { + for name, mask := range watch.names { + if mask&provisional == 0 { + w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) + } + delete(watch.names, name) + } + if watch.mask != 0 { + if watch.mask&provisional == 0 { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + } + watch.mask = 0 + } +} + +// Must run within the I/O thread. +func (w *Watcher) startRead(watch *watch) error { + if e := syscall.CancelIo(watch.ino.handle); e != nil { + w.Errors <- os.NewSyscallError("CancelIo", e) + w.deleteWatch(watch) + } + mask := toWindowsFlags(watch.mask) + for _, m := range watch.names { + mask |= toWindowsFlags(m) + } + if mask == 0 { + if e := syscall.CloseHandle(watch.ino.handle); e != nil { + w.Errors <- os.NewSyscallError("CloseHandle", e) + } + w.mu.Lock() + delete(w.watches[watch.ino.volume], watch.ino.index) + w.mu.Unlock() + return nil + } + e := syscall.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0], + uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0) + if e != nil { + err := os.NewSyscallError("ReadDirectoryChanges", e) + if e == syscall.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { + // Watched directory was probably removed + if w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) { + if watch.mask&sysFSONESHOT != 0 { + watch.mask = 0 + } + } + err = nil + } + w.deleteWatch(watch) + w.startRead(watch) + return err + } + return nil +} + +// readEvents reads from the I/O completion port, converts the +// received events into Event objects and sends them via the Events channel. +// Entry point to the I/O thread. +func (w *Watcher) readEvents() { + var ( + n, key uint32 + ov *syscall.Overlapped + ) + runtime.LockOSThread() + + for { + e := syscall.GetQueuedCompletionStatus(w.port, &n, &key, &ov, syscall.INFINITE) + watch := (*watch)(unsafe.Pointer(ov)) + + if watch == nil { + select { + case ch := <-w.quit: + w.mu.Lock() + var indexes []indexMap + for _, index := range w.watches { + indexes = append(indexes, index) + } + w.mu.Unlock() + for _, index := range indexes { + for _, watch := range index { + w.deleteWatch(watch) + w.startRead(watch) + } + } + var err error + if e := syscall.CloseHandle(w.port); e != nil { + err = os.NewSyscallError("CloseHandle", e) + } + close(w.Events) + close(w.Errors) + ch <- err + return + case in := <-w.input: + switch in.op { + case opAddWatch: + in.reply <- w.addWatch(in.path, uint64(in.flags)) + case opRemoveWatch: + in.reply <- w.remWatch(in.path) + } + default: + } + continue + } + + switch e { + case syscall.ERROR_MORE_DATA: + if watch == nil { + w.Errors <- errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer") + } else { + // The i/o succeeded but the buffer is full. + // In theory we should be building up a full packet. + // In practice we can get away with just carrying on. + n = uint32(unsafe.Sizeof(watch.buf)) + } + case syscall.ERROR_ACCESS_DENIED: + // Watched directory was probably removed + w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) + w.deleteWatch(watch) + w.startRead(watch) + continue + case syscall.ERROR_OPERATION_ABORTED: + // CancelIo was called on this handle + continue + default: + w.Errors <- os.NewSyscallError("GetQueuedCompletionPort", e) + continue + case nil: + } + + var offset uint32 + for { + if n == 0 { + w.Events <- newEvent("", sysFSQOVERFLOW) + w.Errors <- errors.New("short read in readEvents()") + break + } + + // Point "raw" to the event in the buffer + raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) + buf := (*[syscall.MAX_PATH]uint16)(unsafe.Pointer(&raw.FileName)) + name := syscall.UTF16ToString(buf[:raw.FileNameLength/2]) + fullname := filepath.Join(watch.path, name) + + var mask uint64 + switch raw.Action { + case syscall.FILE_ACTION_REMOVED: + mask = sysFSDELETESELF + case syscall.FILE_ACTION_MODIFIED: + mask = sysFSMODIFY + case syscall.FILE_ACTION_RENAMED_OLD_NAME: + watch.rename = name + case syscall.FILE_ACTION_RENAMED_NEW_NAME: + if watch.names[watch.rename] != 0 { + watch.names[name] |= watch.names[watch.rename] + delete(watch.names, watch.rename) + mask = sysFSMOVESELF + } + } + + sendNameEvent := func() { + if w.sendEvent(fullname, watch.names[name]&mask) { + if watch.names[name]&sysFSONESHOT != 0 { + delete(watch.names, name) + } + } + } + if raw.Action != syscall.FILE_ACTION_RENAMED_NEW_NAME { + sendNameEvent() + } + if raw.Action == syscall.FILE_ACTION_REMOVED { + w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + if w.sendEvent(fullname, watch.mask&toFSnotifyFlags(raw.Action)) { + if watch.mask&sysFSONESHOT != 0 { + watch.mask = 0 + } + } + if raw.Action == syscall.FILE_ACTION_RENAMED_NEW_NAME { + fullname = filepath.Join(watch.path, watch.rename) + sendNameEvent() + } + + // Move to the next event in the buffer + if raw.NextEntryOffset == 0 { + break + } + offset += raw.NextEntryOffset + + // Error! + if offset >= n { + w.Errors <- errors.New("Windows system assumed buffer larger than it is, events have likely been missed.") + break + } + } + + if err := w.startRead(watch); err != nil { + w.Errors <- err + } + } +} + +func (w *Watcher) sendEvent(name string, mask uint64) bool { + if mask == 0 { + return false + } + event := newEvent(name, uint32(mask)) + select { + case ch := <-w.quit: + w.quit <- ch + case w.Events <- event: + } + return true +} + +func toWindowsFlags(mask uint64) uint32 { + var m uint32 + if mask&sysFSACCESS != 0 { + m |= syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS + } + if mask&sysFSMODIFY != 0 { + m |= syscall.FILE_NOTIFY_CHANGE_LAST_WRITE + } + if mask&sysFSATTRIB != 0 { + m |= syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES + } + if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { + m |= syscall.FILE_NOTIFY_CHANGE_FILE_NAME | syscall.FILE_NOTIFY_CHANGE_DIR_NAME + } + return m +} + +func toFSnotifyFlags(action uint32) uint64 { + switch action { + case syscall.FILE_ACTION_ADDED: + return sysFSCREATE + case syscall.FILE_ACTION_REMOVED: + return sysFSDELETE + case syscall.FILE_ACTION_MODIFIED: + return sysFSMODIFY + case syscall.FILE_ACTION_RENAMED_OLD_NAME: + return sysFSMOVEDFROM + case syscall.FILE_ACTION_RENAMED_NEW_NAME: + return sysFSMOVEDTO + } + return 0 +} diff --git a/vendor/github.com/hashicorp/hcl/.gitignore b/vendor/github.com/hashicorp/hcl/.gitignore new file mode 100644 index 0000000..15586a2 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/.gitignore @@ -0,0 +1,9 @@ +y.output + +# ignore intellij files +.idea +*.iml +*.ipr +*.iws + +*.test diff --git a/vendor/github.com/hashicorp/hcl/.travis.yml b/vendor/github.com/hashicorp/hcl/.travis.yml new file mode 100644 index 0000000..cb63a32 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/.travis.yml @@ -0,0 +1,13 @@ +sudo: false + +language: go + +go: + - 1.x + - tip + +branches: + only: + - master + +script: make test diff --git a/vendor/github.com/hashicorp/hcl/LICENSE b/vendor/github.com/hashicorp/hcl/LICENSE new file mode 100644 index 0000000..c33dcc7 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/LICENSE @@ -0,0 +1,354 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor” + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version” + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + + means Covered Software of a particular Contributor. + +1.4. “Covered Software” + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form” + + means any form of the work other than Source Code Form. + +1.7. “Larger Work” + + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License” + + means this document. + +1.9. “Licensable” + + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications” + + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License” + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + + means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control” means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible + With Secondary Licenses”, as defined by + the Mozilla Public License, v. 2.0. + diff --git a/vendor/github.com/hashicorp/hcl/Makefile b/vendor/github.com/hashicorp/hcl/Makefile new file mode 100644 index 0000000..84fd743 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/Makefile @@ -0,0 +1,18 @@ +TEST?=./... + +default: test + +fmt: generate + go fmt ./... + +test: generate + go get -t ./... + go test $(TEST) $(TESTARGS) + +generate: + go generate ./... + +updatedeps: + go get -u golang.org/x/tools/cmd/stringer + +.PHONY: default generate test updatedeps diff --git a/vendor/github.com/hashicorp/hcl/README.md b/vendor/github.com/hashicorp/hcl/README.md new file mode 100644 index 0000000..c822332 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/README.md @@ -0,0 +1,125 @@ +# HCL + +[![GoDoc](https://godoc.org/github.com/hashicorp/hcl?status.png)](https://godoc.org/github.com/hashicorp/hcl) [![Build Status](https://travis-ci.org/hashicorp/hcl.svg?branch=master)](https://travis-ci.org/hashicorp/hcl) + +HCL (HashiCorp Configuration Language) is a configuration language built +by HashiCorp. The goal of HCL is to build a structured configuration language +that is both human and machine friendly for use with command-line tools, but +specifically targeted towards DevOps tools, servers, etc. + +HCL is also fully JSON compatible. That is, JSON can be used as completely +valid input to a system expecting HCL. This helps makes systems +interoperable with other systems. + +HCL is heavily inspired by +[libucl](https://github.com/vstakhov/libucl), +nginx configuration, and others similar. + +## Why? + +A common question when viewing HCL is to ask the question: why not +JSON, YAML, etc.? + +Prior to HCL, the tools we built at [HashiCorp](http://www.hashicorp.com) +used a variety of configuration languages from full programming languages +such as Ruby to complete data structure languages such as JSON. What we +learned is that some people wanted human-friendly configuration languages +and some people wanted machine-friendly languages. + +JSON fits a nice balance in this, but is fairly verbose and most +importantly doesn't support comments. With YAML, we found that beginners +had a really hard time determining what the actual structure was, and +ended up guessing more often than not whether to use a hyphen, colon, etc. +in order to represent some configuration key. + +Full programming languages such as Ruby enable complex behavior +a configuration language shouldn't usually allow, and also forces +people to learn some set of Ruby. + +Because of this, we decided to create our own configuration language +that is JSON-compatible. Our configuration language (HCL) is designed +to be written and modified by humans. The API for HCL allows JSON +as an input so that it is also machine-friendly (machines can generate +JSON instead of trying to generate HCL). + +Our goal with HCL is not to alienate other configuration languages. +It is instead to provide HCL as a specialized language for our tools, +and JSON as the interoperability layer. + +## Syntax + +For a complete grammar, please see the parser itself. A high-level overview +of the syntax and grammar is listed here. + + * Single line comments start with `#` or `//` + + * Multi-line comments are wrapped in `/*` and `*/`. Nested block comments + are not allowed. A multi-line comment (also known as a block comment) + terminates at the first `*/` found. + + * Values are assigned with the syntax `key = value` (whitespace doesn't + matter). The value can be any primitive: a string, number, boolean, + object, or list. + + * Strings are double-quoted and can contain any UTF-8 characters. + Example: `"Hello, World"` + + * Multi-line strings start with `<- + echo %Path% + + go version + + go env + + go get -t ./... + +build_script: +- cmd: go test -v ./... diff --git a/vendor/github.com/hashicorp/hcl/decoder.go b/vendor/github.com/hashicorp/hcl/decoder.go new file mode 100644 index 0000000..bed9ebb --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/decoder.go @@ -0,0 +1,729 @@ +package hcl + +import ( + "errors" + "fmt" + "reflect" + "sort" + "strconv" + "strings" + + "github.com/hashicorp/hcl/hcl/ast" + "github.com/hashicorp/hcl/hcl/parser" + "github.com/hashicorp/hcl/hcl/token" +) + +// This is the tag to use with structures to have settings for HCL +const tagName = "hcl" + +var ( + // nodeType holds a reference to the type of ast.Node + nodeType reflect.Type = findNodeType() +) + +// Unmarshal accepts a byte slice as input and writes the +// data to the value pointed to by v. +func Unmarshal(bs []byte, v interface{}) error { + root, err := parse(bs) + if err != nil { + return err + } + + return DecodeObject(v, root) +} + +// Decode reads the given input and decodes it into the structure +// given by `out`. +func Decode(out interface{}, in string) error { + obj, err := Parse(in) + if err != nil { + return err + } + + return DecodeObject(out, obj) +} + +// DecodeObject is a lower-level version of Decode. It decodes a +// raw Object into the given output. +func DecodeObject(out interface{}, n ast.Node) error { + val := reflect.ValueOf(out) + if val.Kind() != reflect.Ptr { + return errors.New("result must be a pointer") + } + + // If we have the file, we really decode the root node + if f, ok := n.(*ast.File); ok { + n = f.Node + } + + var d decoder + return d.decode("root", n, val.Elem()) +} + +type decoder struct { + stack []reflect.Kind +} + +func (d *decoder) decode(name string, node ast.Node, result reflect.Value) error { + k := result + + // If we have an interface with a valid value, we use that + // for the check. + if result.Kind() == reflect.Interface { + elem := result.Elem() + if elem.IsValid() { + k = elem + } + } + + // Push current onto stack unless it is an interface. + if k.Kind() != reflect.Interface { + d.stack = append(d.stack, k.Kind()) + + // Schedule a pop + defer func() { + d.stack = d.stack[:len(d.stack)-1] + }() + } + + switch k.Kind() { + case reflect.Bool: + return d.decodeBool(name, node, result) + case reflect.Float32, reflect.Float64: + return d.decodeFloat(name, node, result) + case reflect.Int, reflect.Int32, reflect.Int64: + return d.decodeInt(name, node, result) + case reflect.Interface: + // When we see an interface, we make our own thing + return d.decodeInterface(name, node, result) + case reflect.Map: + return d.decodeMap(name, node, result) + case reflect.Ptr: + return d.decodePtr(name, node, result) + case reflect.Slice: + return d.decodeSlice(name, node, result) + case reflect.String: + return d.decodeString(name, node, result) + case reflect.Struct: + return d.decodeStruct(name, node, result) + default: + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unknown kind to decode into: %s", name, k.Kind()), + } + } +} + +func (d *decoder) decodeBool(name string, node ast.Node, result reflect.Value) error { + switch n := node.(type) { + case *ast.LiteralType: + if n.Token.Type == token.BOOL { + v, err := strconv.ParseBool(n.Token.Text) + if err != nil { + return err + } + + result.Set(reflect.ValueOf(v)) + return nil + } + } + + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unknown type %T", name, node), + } +} + +func (d *decoder) decodeFloat(name string, node ast.Node, result reflect.Value) error { + switch n := node.(type) { + case *ast.LiteralType: + if n.Token.Type == token.FLOAT || n.Token.Type == token.NUMBER { + v, err := strconv.ParseFloat(n.Token.Text, 64) + if err != nil { + return err + } + + result.Set(reflect.ValueOf(v).Convert(result.Type())) + return nil + } + } + + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unknown type %T", name, node), + } +} + +func (d *decoder) decodeInt(name string, node ast.Node, result reflect.Value) error { + switch n := node.(type) { + case *ast.LiteralType: + switch n.Token.Type { + case token.NUMBER: + v, err := strconv.ParseInt(n.Token.Text, 0, 0) + if err != nil { + return err + } + + if result.Kind() == reflect.Interface { + result.Set(reflect.ValueOf(int(v))) + } else { + result.SetInt(v) + } + return nil + case token.STRING: + v, err := strconv.ParseInt(n.Token.Value().(string), 0, 0) + if err != nil { + return err + } + + if result.Kind() == reflect.Interface { + result.Set(reflect.ValueOf(int(v))) + } else { + result.SetInt(v) + } + return nil + } + } + + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unknown type %T", name, node), + } +} + +func (d *decoder) decodeInterface(name string, node ast.Node, result reflect.Value) error { + // When we see an ast.Node, we retain the value to enable deferred decoding. + // Very useful in situations where we want to preserve ast.Node information + // like Pos + if result.Type() == nodeType && result.CanSet() { + result.Set(reflect.ValueOf(node)) + return nil + } + + var set reflect.Value + redecode := true + + // For testing types, ObjectType should just be treated as a list. We + // set this to a temporary var because we want to pass in the real node. + testNode := node + if ot, ok := node.(*ast.ObjectType); ok { + testNode = ot.List + } + + switch n := testNode.(type) { + case *ast.ObjectList: + // If we're at the root or we're directly within a slice, then we + // decode objects into map[string]interface{}, otherwise we decode + // them into lists. + if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { + var temp map[string]interface{} + tempVal := reflect.ValueOf(temp) + result := reflect.MakeMap( + reflect.MapOf( + reflect.TypeOf(""), + tempVal.Type().Elem())) + + set = result + } else { + var temp []map[string]interface{} + tempVal := reflect.ValueOf(temp) + result := reflect.MakeSlice( + reflect.SliceOf(tempVal.Type().Elem()), 0, len(n.Items)) + set = result + } + case *ast.ObjectType: + // If we're at the root or we're directly within a slice, then we + // decode objects into map[string]interface{}, otherwise we decode + // them into lists. + if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { + var temp map[string]interface{} + tempVal := reflect.ValueOf(temp) + result := reflect.MakeMap( + reflect.MapOf( + reflect.TypeOf(""), + tempVal.Type().Elem())) + + set = result + } else { + var temp []map[string]interface{} + tempVal := reflect.ValueOf(temp) + result := reflect.MakeSlice( + reflect.SliceOf(tempVal.Type().Elem()), 0, 1) + set = result + } + case *ast.ListType: + var temp []interface{} + tempVal := reflect.ValueOf(temp) + result := reflect.MakeSlice( + reflect.SliceOf(tempVal.Type().Elem()), 0, 0) + set = result + case *ast.LiteralType: + switch n.Token.Type { + case token.BOOL: + var result bool + set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) + case token.FLOAT: + var result float64 + set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) + case token.NUMBER: + var result int + set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) + case token.STRING, token.HEREDOC: + set = reflect.Indirect(reflect.New(reflect.TypeOf(""))) + default: + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: cannot decode into interface: %T", name, node), + } + } + default: + return fmt.Errorf( + "%s: cannot decode into interface: %T", + name, node) + } + + // Set the result to what its supposed to be, then reset + // result so we don't reflect into this method anymore. + result.Set(set) + + if redecode { + // Revisit the node so that we can use the newly instantiated + // thing and populate it. + if err := d.decode(name, node, result); err != nil { + return err + } + } + + return nil +} + +func (d *decoder) decodeMap(name string, node ast.Node, result reflect.Value) error { + if item, ok := node.(*ast.ObjectItem); ok { + node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} + } + + if ot, ok := node.(*ast.ObjectType); ok { + node = ot.List + } + + n, ok := node.(*ast.ObjectList) + if !ok { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: not an object type for map (%T)", name, node), + } + } + + // If we have an interface, then we can address the interface, + // but not the slice itself, so get the element but set the interface + set := result + if result.Kind() == reflect.Interface { + result = result.Elem() + } + + resultType := result.Type() + resultElemType := resultType.Elem() + resultKeyType := resultType.Key() + if resultKeyType.Kind() != reflect.String { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: map must have string keys", name), + } + } + + // Make a map if it is nil + resultMap := result + if result.IsNil() { + resultMap = reflect.MakeMap( + reflect.MapOf(resultKeyType, resultElemType)) + } + + // Go through each element and decode it. + done := make(map[string]struct{}) + for _, item := range n.Items { + if item.Val == nil { + continue + } + + // github.com/hashicorp/terraform/issue/5740 + if len(item.Keys) == 0 { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: map must have string keys", name), + } + } + + // Get the key we're dealing with, which is the first item + keyStr := item.Keys[0].Token.Value().(string) + + // If we've already processed this key, then ignore it + if _, ok := done[keyStr]; ok { + continue + } + + // Determine the value. If we have more than one key, then we + // get the objectlist of only these keys. + itemVal := item.Val + if len(item.Keys) > 1 { + itemVal = n.Filter(keyStr) + done[keyStr] = struct{}{} + } + + // Make the field name + fieldName := fmt.Sprintf("%s.%s", name, keyStr) + + // Get the key/value as reflection values + key := reflect.ValueOf(keyStr) + val := reflect.Indirect(reflect.New(resultElemType)) + + // If we have a pre-existing value in the map, use that + oldVal := resultMap.MapIndex(key) + if oldVal.IsValid() { + val.Set(oldVal) + } + + // Decode! + if err := d.decode(fieldName, itemVal, val); err != nil { + return err + } + + // Set the value on the map + resultMap.SetMapIndex(key, val) + } + + // Set the final map if we can + set.Set(resultMap) + return nil +} + +func (d *decoder) decodePtr(name string, node ast.Node, result reflect.Value) error { + // Create an element of the concrete (non pointer) type and decode + // into that. Then set the value of the pointer to this type. + resultType := result.Type() + resultElemType := resultType.Elem() + val := reflect.New(resultElemType) + if err := d.decode(name, node, reflect.Indirect(val)); err != nil { + return err + } + + result.Set(val) + return nil +} + +func (d *decoder) decodeSlice(name string, node ast.Node, result reflect.Value) error { + // If we have an interface, then we can address the interface, + // but not the slice itself, so get the element but set the interface + set := result + if result.Kind() == reflect.Interface { + result = result.Elem() + } + // Create the slice if it isn't nil + resultType := result.Type() + resultElemType := resultType.Elem() + if result.IsNil() { + resultSliceType := reflect.SliceOf(resultElemType) + result = reflect.MakeSlice( + resultSliceType, 0, 0) + } + + // Figure out the items we'll be copying into the slice + var items []ast.Node + switch n := node.(type) { + case *ast.ObjectList: + items = make([]ast.Node, len(n.Items)) + for i, item := range n.Items { + items[i] = item + } + case *ast.ObjectType: + items = []ast.Node{n} + case *ast.ListType: + items = n.List + default: + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("unknown slice type: %T", node), + } + } + + for i, item := range items { + fieldName := fmt.Sprintf("%s[%d]", name, i) + + // Decode + val := reflect.Indirect(reflect.New(resultElemType)) + + // if item is an object that was decoded from ambiguous JSON and + // flattened, make sure it's expanded if it needs to decode into a + // defined structure. + item := expandObject(item, val) + + if err := d.decode(fieldName, item, val); err != nil { + return err + } + + // Append it onto the slice + result = reflect.Append(result, val) + } + + set.Set(result) + return nil +} + +// expandObject detects if an ambiguous JSON object was flattened to a List which +// should be decoded into a struct, and expands the ast to properly deocode. +func expandObject(node ast.Node, result reflect.Value) ast.Node { + item, ok := node.(*ast.ObjectItem) + if !ok { + return node + } + + elemType := result.Type() + + // our target type must be a struct + switch elemType.Kind() { + case reflect.Ptr: + switch elemType.Elem().Kind() { + case reflect.Struct: + //OK + default: + return node + } + case reflect.Struct: + //OK + default: + return node + } + + // A list value will have a key and field name. If it had more fields, + // it wouldn't have been flattened. + if len(item.Keys) != 2 { + return node + } + + keyToken := item.Keys[0].Token + item.Keys = item.Keys[1:] + + // we need to un-flatten the ast enough to decode + newNode := &ast.ObjectItem{ + Keys: []*ast.ObjectKey{ + &ast.ObjectKey{ + Token: keyToken, + }, + }, + Val: &ast.ObjectType{ + List: &ast.ObjectList{ + Items: []*ast.ObjectItem{item}, + }, + }, + } + + return newNode +} + +func (d *decoder) decodeString(name string, node ast.Node, result reflect.Value) error { + switch n := node.(type) { + case *ast.LiteralType: + switch n.Token.Type { + case token.NUMBER: + result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type())) + return nil + case token.STRING, token.HEREDOC: + result.Set(reflect.ValueOf(n.Token.Value()).Convert(result.Type())) + return nil + } + } + + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unknown type for string %T", name, node), + } +} + +func (d *decoder) decodeStruct(name string, node ast.Node, result reflect.Value) error { + var item *ast.ObjectItem + if it, ok := node.(*ast.ObjectItem); ok { + item = it + node = it.Val + } + + if ot, ok := node.(*ast.ObjectType); ok { + node = ot.List + } + + // Handle the special case where the object itself is a literal. Previously + // the yacc parser would always ensure top-level elements were arrays. The new + // parser does not make the same guarantees, thus we need to convert any + // top-level literal elements into a list. + if _, ok := node.(*ast.LiteralType); ok && item != nil { + node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} + } + + list, ok := node.(*ast.ObjectList) + if !ok { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: not an object type for struct (%T)", name, node), + } + } + + // This slice will keep track of all the structs we'll be decoding. + // There can be more than one struct if there are embedded structs + // that are squashed. + structs := make([]reflect.Value, 1, 5) + structs[0] = result + + // Compile the list of all the fields that we're going to be decoding + // from all the structs. + type field struct { + field reflect.StructField + val reflect.Value + } + fields := []field{} + for len(structs) > 0 { + structVal := structs[0] + structs = structs[1:] + + structType := structVal.Type() + for i := 0; i < structType.NumField(); i++ { + fieldType := structType.Field(i) + tagParts := strings.Split(fieldType.Tag.Get(tagName), ",") + + // Ignore fields with tag name "-" + if tagParts[0] == "-" { + continue + } + + if fieldType.Anonymous { + fieldKind := fieldType.Type.Kind() + if fieldKind != reflect.Struct { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: unsupported type to struct: %s", + fieldType.Name, fieldKind), + } + } + + // We have an embedded field. We "squash" the fields down + // if specified in the tag. + squash := false + for _, tag := range tagParts[1:] { + if tag == "squash" { + squash = true + break + } + } + + if squash { + structs = append( + structs, result.FieldByName(fieldType.Name)) + continue + } + } + + // Normal struct field, store it away + fields = append(fields, field{fieldType, structVal.Field(i)}) + } + } + + usedKeys := make(map[string]struct{}) + decodedFields := make([]string, 0, len(fields)) + decodedFieldsVal := make([]reflect.Value, 0) + unusedKeysVal := make([]reflect.Value, 0) + for _, f := range fields { + field, fieldValue := f.field, f.val + if !fieldValue.IsValid() { + // This should never happen + panic("field is not valid") + } + + // If we can't set the field, then it is unexported or something, + // and we just continue onwards. + if !fieldValue.CanSet() { + continue + } + + fieldName := field.Name + + tagValue := field.Tag.Get(tagName) + tagParts := strings.SplitN(tagValue, ",", 2) + if len(tagParts) >= 2 { + switch tagParts[1] { + case "decodedFields": + decodedFieldsVal = append(decodedFieldsVal, fieldValue) + continue + case "key": + if item == nil { + return &parser.PosError{ + Pos: node.Pos(), + Err: fmt.Errorf("%s: %s asked for 'key', impossible", + name, fieldName), + } + } + + fieldValue.SetString(item.Keys[0].Token.Value().(string)) + continue + case "unusedKeys": + unusedKeysVal = append(unusedKeysVal, fieldValue) + continue + } + } + + if tagParts[0] != "" { + fieldName = tagParts[0] + } + + // Determine the element we'll use to decode. If it is a single + // match (only object with the field), then we decode it exactly. + // If it is a prefix match, then we decode the matches. + filter := list.Filter(fieldName) + + prefixMatches := filter.Children() + matches := filter.Elem() + if len(matches.Items) == 0 && len(prefixMatches.Items) == 0 { + continue + } + + // Track the used key + usedKeys[fieldName] = struct{}{} + + // Create the field name and decode. We range over the elements + // because we actually want the value. + fieldName = fmt.Sprintf("%s.%s", name, fieldName) + if len(prefixMatches.Items) > 0 { + if err := d.decode(fieldName, prefixMatches, fieldValue); err != nil { + return err + } + } + for _, match := range matches.Items { + var decodeNode ast.Node = match.Val + if ot, ok := decodeNode.(*ast.ObjectType); ok { + decodeNode = &ast.ObjectList{Items: ot.List.Items} + } + + if err := d.decode(fieldName, decodeNode, fieldValue); err != nil { + return err + } + } + + decodedFields = append(decodedFields, field.Name) + } + + if len(decodedFieldsVal) > 0 { + // Sort it so that it is deterministic + sort.Strings(decodedFields) + + for _, v := range decodedFieldsVal { + v.Set(reflect.ValueOf(decodedFields)) + } + } + + return nil +} + +// findNodeType returns the type of ast.Node +func findNodeType() reflect.Type { + var nodeContainer struct { + Node ast.Node + } + value := reflect.ValueOf(nodeContainer).FieldByName("Node") + return value.Type() +} diff --git a/vendor/github.com/hashicorp/hcl/go.mod b/vendor/github.com/hashicorp/hcl/go.mod new file mode 100644 index 0000000..4debbbe --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/go.mod @@ -0,0 +1,3 @@ +module github.com/hashicorp/hcl + +require github.com/davecgh/go-spew v1.1.1 diff --git a/vendor/github.com/hashicorp/hcl/go.sum b/vendor/github.com/hashicorp/hcl/go.sum new file mode 100644 index 0000000..b5e2922 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/go.sum @@ -0,0 +1,2 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/vendor/github.com/hashicorp/hcl/hcl.go b/vendor/github.com/hashicorp/hcl/hcl.go new file mode 100644 index 0000000..575a20b --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl.go @@ -0,0 +1,11 @@ +// Package hcl decodes HCL into usable Go structures. +// +// hcl input can come in either pure HCL format or JSON format. +// It can be parsed into an AST, and then decoded into a structure, +// or it can be decoded directly from a string into a structure. +// +// If you choose to parse HCL into a raw AST, the benefit is that you +// can write custom visitor implementations to implement custom +// semantic checks. By default, HCL does not perform any semantic +// checks. +package hcl diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go b/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go new file mode 100644 index 0000000..6e5ef65 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go @@ -0,0 +1,219 @@ +// Package ast declares the types used to represent syntax trees for HCL +// (HashiCorp Configuration Language) +package ast + +import ( + "fmt" + "strings" + + "github.com/hashicorp/hcl/hcl/token" +) + +// Node is an element in the abstract syntax tree. +type Node interface { + node() + Pos() token.Pos +} + +func (File) node() {} +func (ObjectList) node() {} +func (ObjectKey) node() {} +func (ObjectItem) node() {} +func (Comment) node() {} +func (CommentGroup) node() {} +func (ObjectType) node() {} +func (LiteralType) node() {} +func (ListType) node() {} + +// File represents a single HCL file +type File struct { + Node Node // usually a *ObjectList + Comments []*CommentGroup // list of all comments in the source +} + +func (f *File) Pos() token.Pos { + return f.Node.Pos() +} + +// ObjectList represents a list of ObjectItems. An HCL file itself is an +// ObjectList. +type ObjectList struct { + Items []*ObjectItem +} + +func (o *ObjectList) Add(item *ObjectItem) { + o.Items = append(o.Items, item) +} + +// Filter filters out the objects with the given key list as a prefix. +// +// The returned list of objects contain ObjectItems where the keys have +// this prefix already stripped off. This might result in objects with +// zero-length key lists if they have no children. +// +// If no matches are found, an empty ObjectList (non-nil) is returned. +func (o *ObjectList) Filter(keys ...string) *ObjectList { + var result ObjectList + for _, item := range o.Items { + // If there aren't enough keys, then ignore this + if len(item.Keys) < len(keys) { + continue + } + + match := true + for i, key := range item.Keys[:len(keys)] { + key := key.Token.Value().(string) + if key != keys[i] && !strings.EqualFold(key, keys[i]) { + match = false + break + } + } + if !match { + continue + } + + // Strip off the prefix from the children + newItem := *item + newItem.Keys = newItem.Keys[len(keys):] + result.Add(&newItem) + } + + return &result +} + +// Children returns further nested objects (key length > 0) within this +// ObjectList. This should be used with Filter to get at child items. +func (o *ObjectList) Children() *ObjectList { + var result ObjectList + for _, item := range o.Items { + if len(item.Keys) > 0 { + result.Add(item) + } + } + + return &result +} + +// Elem returns items in the list that are direct element assignments +// (key length == 0). This should be used with Filter to get at elements. +func (o *ObjectList) Elem() *ObjectList { + var result ObjectList + for _, item := range o.Items { + if len(item.Keys) == 0 { + result.Add(item) + } + } + + return &result +} + +func (o *ObjectList) Pos() token.Pos { + // always returns the uninitiliazed position + return o.Items[0].Pos() +} + +// ObjectItem represents a HCL Object Item. An item is represented with a key +// (or keys). It can be an assignment or an object (both normal and nested) +type ObjectItem struct { + // keys is only one length long if it's of type assignment. If it's a + // nested object it can be larger than one. In that case "assign" is + // invalid as there is no assignments for a nested object. + Keys []*ObjectKey + + // assign contains the position of "=", if any + Assign token.Pos + + // val is the item itself. It can be an object,list, number, bool or a + // string. If key length is larger than one, val can be only of type + // Object. + Val Node + + LeadComment *CommentGroup // associated lead comment + LineComment *CommentGroup // associated line comment +} + +func (o *ObjectItem) Pos() token.Pos { + // I'm not entirely sure what causes this, but removing this causes + // a test failure. We should investigate at some point. + if len(o.Keys) == 0 { + return token.Pos{} + } + + return o.Keys[0].Pos() +} + +// ObjectKeys are either an identifier or of type string. +type ObjectKey struct { + Token token.Token +} + +func (o *ObjectKey) Pos() token.Pos { + return o.Token.Pos +} + +// LiteralType represents a literal of basic type. Valid types are: +// token.NUMBER, token.FLOAT, token.BOOL and token.STRING +type LiteralType struct { + Token token.Token + + // comment types, only used when in a list + LeadComment *CommentGroup + LineComment *CommentGroup +} + +func (l *LiteralType) Pos() token.Pos { + return l.Token.Pos +} + +// ListStatement represents a HCL List type +type ListType struct { + Lbrack token.Pos // position of "[" + Rbrack token.Pos // position of "]" + List []Node // the elements in lexical order +} + +func (l *ListType) Pos() token.Pos { + return l.Lbrack +} + +func (l *ListType) Add(node Node) { + l.List = append(l.List, node) +} + +// ObjectType represents a HCL Object Type +type ObjectType struct { + Lbrace token.Pos // position of "{" + Rbrace token.Pos // position of "}" + List *ObjectList // the nodes in lexical order +} + +func (o *ObjectType) Pos() token.Pos { + return o.Lbrace +} + +// Comment node represents a single //, # style or /*- style commment +type Comment struct { + Start token.Pos // position of / or # + Text string +} + +func (c *Comment) Pos() token.Pos { + return c.Start +} + +// CommentGroup node represents a sequence of comments with no other tokens and +// no empty lines between. +type CommentGroup struct { + List []*Comment // len(List) > 0 +} + +func (c *CommentGroup) Pos() token.Pos { + return c.List[0].Pos() +} + +//------------------------------------------------------------------- +// GoStringer +//------------------------------------------------------------------- + +func (o *ObjectKey) GoString() string { return fmt.Sprintf("*%#v", *o) } +func (o *ObjectList) GoString() string { return fmt.Sprintf("*%#v", *o) } diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go b/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go new file mode 100644 index 0000000..ba07ad4 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go @@ -0,0 +1,52 @@ +package ast + +import "fmt" + +// WalkFunc describes a function to be called for each node during a Walk. The +// returned node can be used to rewrite the AST. Walking stops the returned +// bool is false. +type WalkFunc func(Node) (Node, bool) + +// Walk traverses an AST in depth-first order: It starts by calling fn(node); +// node must not be nil. If fn returns true, Walk invokes fn recursively for +// each of the non-nil children of node, followed by a call of fn(nil). The +// returned node of fn can be used to rewrite the passed node to fn. +func Walk(node Node, fn WalkFunc) Node { + rewritten, ok := fn(node) + if !ok { + return rewritten + } + + switch n := node.(type) { + case *File: + n.Node = Walk(n.Node, fn) + case *ObjectList: + for i, item := range n.Items { + n.Items[i] = Walk(item, fn).(*ObjectItem) + } + case *ObjectKey: + // nothing to do + case *ObjectItem: + for i, k := range n.Keys { + n.Keys[i] = Walk(k, fn).(*ObjectKey) + } + + if n.Val != nil { + n.Val = Walk(n.Val, fn) + } + case *LiteralType: + // nothing to do + case *ListType: + for i, l := range n.List { + n.List[i] = Walk(l, fn) + } + case *ObjectType: + n.List = Walk(n.List, fn).(*ObjectList) + default: + // should we panic here? + fmt.Printf("unknown type: %T\n", n) + } + + fn(nil) + return rewritten +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/error.go b/vendor/github.com/hashicorp/hcl/hcl/parser/error.go new file mode 100644 index 0000000..5c99381 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/parser/error.go @@ -0,0 +1,17 @@ +package parser + +import ( + "fmt" + + "github.com/hashicorp/hcl/hcl/token" +) + +// PosError is a parse error that contains a position. +type PosError struct { + Pos token.Pos + Err error +} + +func (e *PosError) Error() string { + return fmt.Sprintf("At %s: %s", e.Pos, e.Err) +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go b/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go new file mode 100644 index 0000000..64c83bc --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go @@ -0,0 +1,532 @@ +// Package parser implements a parser for HCL (HashiCorp Configuration +// Language) +package parser + +import ( + "bytes" + "errors" + "fmt" + "strings" + + "github.com/hashicorp/hcl/hcl/ast" + "github.com/hashicorp/hcl/hcl/scanner" + "github.com/hashicorp/hcl/hcl/token" +) + +type Parser struct { + sc *scanner.Scanner + + // Last read token + tok token.Token + commaPrev token.Token + + comments []*ast.CommentGroup + leadComment *ast.CommentGroup // last lead comment + lineComment *ast.CommentGroup // last line comment + + enableTrace bool + indent int + n int // buffer size (max = 1) +} + +func newParser(src []byte) *Parser { + return &Parser{ + sc: scanner.New(src), + } +} + +// Parse returns the fully parsed source and returns the abstract syntax tree. +func Parse(src []byte) (*ast.File, error) { + // normalize all line endings + // since the scanner and output only work with "\n" line endings, we may + // end up with dangling "\r" characters in the parsed data. + src = bytes.Replace(src, []byte("\r\n"), []byte("\n"), -1) + + p := newParser(src) + return p.Parse() +} + +var errEofToken = errors.New("EOF token found") + +// Parse returns the fully parsed source and returns the abstract syntax tree. +func (p *Parser) Parse() (*ast.File, error) { + f := &ast.File{} + var err, scerr error + p.sc.Error = func(pos token.Pos, msg string) { + scerr = &PosError{Pos: pos, Err: errors.New(msg)} + } + + f.Node, err = p.objectList(false) + if scerr != nil { + return nil, scerr + } + if err != nil { + return nil, err + } + + f.Comments = p.comments + return f, nil +} + +// objectList parses a list of items within an object (generally k/v pairs). +// The parameter" obj" tells this whether to we are within an object (braces: +// '{', '}') or just at the top level. If we're within an object, we end +// at an RBRACE. +func (p *Parser) objectList(obj bool) (*ast.ObjectList, error) { + defer un(trace(p, "ParseObjectList")) + node := &ast.ObjectList{} + + for { + if obj { + tok := p.scan() + p.unscan() + if tok.Type == token.RBRACE { + break + } + } + + n, err := p.objectItem() + if err == errEofToken { + break // we are finished + } + + // we don't return a nil node, because might want to use already + // collected items. + if err != nil { + return node, err + } + + node.Add(n) + + // object lists can be optionally comma-delimited e.g. when a list of maps + // is being expressed, so a comma is allowed here - it's simply consumed + tok := p.scan() + if tok.Type != token.COMMA { + p.unscan() + } + } + return node, nil +} + +func (p *Parser) consumeComment() (comment *ast.Comment, endline int) { + endline = p.tok.Pos.Line + + // count the endline if it's multiline comment, ie starting with /* + if len(p.tok.Text) > 1 && p.tok.Text[1] == '*' { + // don't use range here - no need to decode Unicode code points + for i := 0; i < len(p.tok.Text); i++ { + if p.tok.Text[i] == '\n' { + endline++ + } + } + } + + comment = &ast.Comment{Start: p.tok.Pos, Text: p.tok.Text} + p.tok = p.sc.Scan() + return +} + +func (p *Parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) { + var list []*ast.Comment + endline = p.tok.Pos.Line + + for p.tok.Type == token.COMMENT && p.tok.Pos.Line <= endline+n { + var comment *ast.Comment + comment, endline = p.consumeComment() + list = append(list, comment) + } + + // add comment group to the comments list + comments = &ast.CommentGroup{List: list} + p.comments = append(p.comments, comments) + + return +} + +// objectItem parses a single object item +func (p *Parser) objectItem() (*ast.ObjectItem, error) { + defer un(trace(p, "ParseObjectItem")) + + keys, err := p.objectKey() + if len(keys) > 0 && err == errEofToken { + // We ignore eof token here since it is an error if we didn't + // receive a value (but we did receive a key) for the item. + err = nil + } + if len(keys) > 0 && err != nil && p.tok.Type == token.RBRACE { + // This is a strange boolean statement, but what it means is: + // We have keys with no value, and we're likely in an object + // (since RBrace ends an object). For this, we set err to nil so + // we continue and get the error below of having the wrong value + // type. + err = nil + + // Reset the token type so we don't think it completed fine. See + // objectType which uses p.tok.Type to check if we're done with + // the object. + p.tok.Type = token.EOF + } + if err != nil { + return nil, err + } + + o := &ast.ObjectItem{ + Keys: keys, + } + + if p.leadComment != nil { + o.LeadComment = p.leadComment + p.leadComment = nil + } + + switch p.tok.Type { + case token.ASSIGN: + o.Assign = p.tok.Pos + o.Val, err = p.object() + if err != nil { + return nil, err + } + case token.LBRACE: + o.Val, err = p.objectType() + if err != nil { + return nil, err + } + default: + keyStr := make([]string, 0, len(keys)) + for _, k := range keys { + keyStr = append(keyStr, k.Token.Text) + } + + return nil, &PosError{ + Pos: p.tok.Pos, + Err: fmt.Errorf( + "key '%s' expected start of object ('{') or assignment ('=')", + strings.Join(keyStr, " ")), + } + } + + // key=#comment + // val + if p.lineComment != nil { + o.LineComment, p.lineComment = p.lineComment, nil + } + + // do a look-ahead for line comment + p.scan() + if len(keys) > 0 && o.Val.Pos().Line == keys[0].Pos().Line && p.lineComment != nil { + o.LineComment = p.lineComment + p.lineComment = nil + } + p.unscan() + return o, nil +} + +// objectKey parses an object key and returns a ObjectKey AST +func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { + keyCount := 0 + keys := make([]*ast.ObjectKey, 0) + + for { + tok := p.scan() + switch tok.Type { + case token.EOF: + // It is very important to also return the keys here as well as + // the error. This is because we need to be able to tell if we + // did parse keys prior to finding the EOF, or if we just found + // a bare EOF. + return keys, errEofToken + case token.ASSIGN: + // assignment or object only, but not nested objects. this is not + // allowed: `foo bar = {}` + if keyCount > 1 { + return nil, &PosError{ + Pos: p.tok.Pos, + Err: fmt.Errorf("nested object expected: LBRACE got: %s", p.tok.Type), + } + } + + if keyCount == 0 { + return nil, &PosError{ + Pos: p.tok.Pos, + Err: errors.New("no object keys found!"), + } + } + + return keys, nil + case token.LBRACE: + var err error + + // If we have no keys, then it is a syntax error. i.e. {{}} is not + // allowed. + if len(keys) == 0 { + err = &PosError{ + Pos: p.tok.Pos, + Err: fmt.Errorf("expected: IDENT | STRING got: %s", p.tok.Type), + } + } + + // object + return keys, err + case token.IDENT, token.STRING: + keyCount++ + keys = append(keys, &ast.ObjectKey{Token: p.tok}) + case token.ILLEGAL: + return keys, &PosError{ + Pos: p.tok.Pos, + Err: fmt.Errorf("illegal character"), + } + default: + return keys, &PosError{ + Pos: p.tok.Pos, + Err: fmt.Errorf("expected: IDENT | STRING | ASSIGN | LBRACE got: %s", p.tok.Type), + } + } + } +} + +// object parses any type of object, such as number, bool, string, object or +// list. +func (p *Parser) object() (ast.Node, error) { + defer un(trace(p, "ParseType")) + tok := p.scan() + + switch tok.Type { + case token.NUMBER, token.FLOAT, token.BOOL, token.STRING, token.HEREDOC: + return p.literalType() + case token.LBRACE: + return p.objectType() + case token.LBRACK: + return p.listType() + case token.COMMENT: + // implement comment + case token.EOF: + return nil, errEofToken + } + + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf("Unknown token: %+v", tok), + } +} + +// objectType parses an object type and returns a ObjectType AST +func (p *Parser) objectType() (*ast.ObjectType, error) { + defer un(trace(p, "ParseObjectType")) + + // we assume that the currently scanned token is a LBRACE + o := &ast.ObjectType{ + Lbrace: p.tok.Pos, + } + + l, err := p.objectList(true) + + // if we hit RBRACE, we are good to go (means we parsed all Items), if it's + // not a RBRACE, it's an syntax error and we just return it. + if err != nil && p.tok.Type != token.RBRACE { + return nil, err + } + + // No error, scan and expect the ending to be a brace + if tok := p.scan(); tok.Type != token.RBRACE { + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf("object expected closing RBRACE got: %s", tok.Type), + } + } + + o.List = l + o.Rbrace = p.tok.Pos // advanced via parseObjectList + return o, nil +} + +// listType parses a list type and returns a ListType AST +func (p *Parser) listType() (*ast.ListType, error) { + defer un(trace(p, "ParseListType")) + + // we assume that the currently scanned token is a LBRACK + l := &ast.ListType{ + Lbrack: p.tok.Pos, + } + + needComma := false + for { + tok := p.scan() + if needComma { + switch tok.Type { + case token.COMMA, token.RBRACK: + default: + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf( + "error parsing list, expected comma or list end, got: %s", + tok.Type), + } + } + } + switch tok.Type { + case token.BOOL, token.NUMBER, token.FLOAT, token.STRING, token.HEREDOC: + node, err := p.literalType() + if err != nil { + return nil, err + } + + // If there is a lead comment, apply it + if p.leadComment != nil { + node.LeadComment = p.leadComment + p.leadComment = nil + } + + l.Add(node) + needComma = true + case token.COMMA: + // get next list item or we are at the end + // do a look-ahead for line comment + p.scan() + if p.lineComment != nil && len(l.List) > 0 { + lit, ok := l.List[len(l.List)-1].(*ast.LiteralType) + if ok { + lit.LineComment = p.lineComment + l.List[len(l.List)-1] = lit + p.lineComment = nil + } + } + p.unscan() + + needComma = false + continue + case token.LBRACE: + // Looks like a nested object, so parse it out + node, err := p.objectType() + if err != nil { + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf( + "error while trying to parse object within list: %s", err), + } + } + l.Add(node) + needComma = true + case token.LBRACK: + node, err := p.listType() + if err != nil { + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf( + "error while trying to parse list within list: %s", err), + } + } + l.Add(node) + case token.RBRACK: + // finished + l.Rbrack = p.tok.Pos + return l, nil + default: + return nil, &PosError{ + Pos: tok.Pos, + Err: fmt.Errorf("unexpected token while parsing list: %s", tok.Type), + } + } + } +} + +// literalType parses a literal type and returns a LiteralType AST +func (p *Parser) literalType() (*ast.LiteralType, error) { + defer un(trace(p, "ParseLiteral")) + + return &ast.LiteralType{ + Token: p.tok, + }, nil +} + +// scan returns the next token from the underlying scanner. If a token has +// been unscanned then read that instead. In the process, it collects any +// comment groups encountered, and remembers the last lead and line comments. +func (p *Parser) scan() token.Token { + // If we have a token on the buffer, then return it. + if p.n != 0 { + p.n = 0 + return p.tok + } + + // Otherwise read the next token from the scanner and Save it to the buffer + // in case we unscan later. + prev := p.tok + p.tok = p.sc.Scan() + + if p.tok.Type == token.COMMENT { + var comment *ast.CommentGroup + var endline int + + // fmt.Printf("p.tok.Pos.Line = %+v prev: %d endline %d \n", + // p.tok.Pos.Line, prev.Pos.Line, endline) + if p.tok.Pos.Line == prev.Pos.Line { + // The comment is on same line as the previous token; it + // cannot be a lead comment but may be a line comment. + comment, endline = p.consumeCommentGroup(0) + if p.tok.Pos.Line != endline { + // The next token is on a different line, thus + // the last comment group is a line comment. + p.lineComment = comment + } + } + + // consume successor comments, if any + endline = -1 + for p.tok.Type == token.COMMENT { + comment, endline = p.consumeCommentGroup(1) + } + + if endline+1 == p.tok.Pos.Line && p.tok.Type != token.RBRACE { + switch p.tok.Type { + case token.RBRACE, token.RBRACK: + // Do not count for these cases + default: + // The next token is following on the line immediately after the + // comment group, thus the last comment group is a lead comment. + p.leadComment = comment + } + } + + } + + return p.tok +} + +// unscan pushes the previously read token back onto the buffer. +func (p *Parser) unscan() { + p.n = 1 +} + +// ---------------------------------------------------------------------------- +// Parsing support + +func (p *Parser) printTrace(a ...interface{}) { + if !p.enableTrace { + return + } + + const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " + const n = len(dots) + fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) + + i := 2 * p.indent + for i > n { + fmt.Print(dots) + i -= n + } + // i <= n + fmt.Print(dots[0:i]) + fmt.Println(a...) +} + +func trace(p *Parser, msg string) *Parser { + p.printTrace(msg, "(") + p.indent++ + return p +} + +// Usage pattern: defer un(trace(p, "...")) +func un(p *Parser) { + p.indent-- + p.printTrace(")") +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go b/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go new file mode 100644 index 0000000..7c038d1 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/printer/nodes.go @@ -0,0 +1,789 @@ +package printer + +import ( + "bytes" + "fmt" + "sort" + + "github.com/hashicorp/hcl/hcl/ast" + "github.com/hashicorp/hcl/hcl/token" +) + +const ( + blank = byte(' ') + newline = byte('\n') + tab = byte('\t') + infinity = 1 << 30 // offset or line +) + +var ( + unindent = []byte("\uE123") // in the private use space +) + +type printer struct { + cfg Config + prev token.Pos + + comments []*ast.CommentGroup // may be nil, contains all comments + standaloneComments []*ast.CommentGroup // contains all standalone comments (not assigned to any node) + + enableTrace bool + indentTrace int +} + +type ByPosition []*ast.CommentGroup + +func (b ByPosition) Len() int { return len(b) } +func (b ByPosition) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b ByPosition) Less(i, j int) bool { return b[i].Pos().Before(b[j].Pos()) } + +// collectComments comments all standalone comments which are not lead or line +// comment +func (p *printer) collectComments(node ast.Node) { + // first collect all comments. This is already stored in + // ast.File.(comments) + ast.Walk(node, func(nn ast.Node) (ast.Node, bool) { + switch t := nn.(type) { + case *ast.File: + p.comments = t.Comments + return nn, false + } + return nn, true + }) + + standaloneComments := make(map[token.Pos]*ast.CommentGroup, 0) + for _, c := range p.comments { + standaloneComments[c.Pos()] = c + } + + // next remove all lead and line comments from the overall comment map. + // This will give us comments which are standalone, comments which are not + // assigned to any kind of node. + ast.Walk(node, func(nn ast.Node) (ast.Node, bool) { + switch t := nn.(type) { + case *ast.LiteralType: + if t.LeadComment != nil { + for _, comment := range t.LeadComment.List { + if _, ok := standaloneComments[comment.Pos()]; ok { + delete(standaloneComments, comment.Pos()) + } + } + } + + if t.LineComment != nil { + for _, comment := range t.LineComment.List { + if _, ok := standaloneComments[comment.Pos()]; ok { + delete(standaloneComments, comment.Pos()) + } + } + } + case *ast.ObjectItem: + if t.LeadComment != nil { + for _, comment := range t.LeadComment.List { + if _, ok := standaloneComments[comment.Pos()]; ok { + delete(standaloneComments, comment.Pos()) + } + } + } + + if t.LineComment != nil { + for _, comment := range t.LineComment.List { + if _, ok := standaloneComments[comment.Pos()]; ok { + delete(standaloneComments, comment.Pos()) + } + } + } + } + + return nn, true + }) + + for _, c := range standaloneComments { + p.standaloneComments = append(p.standaloneComments, c) + } + + sort.Sort(ByPosition(p.standaloneComments)) +} + +// output prints creates b printable HCL output and returns it. +func (p *printer) output(n interface{}) []byte { + var buf bytes.Buffer + + switch t := n.(type) { + case *ast.File: + // File doesn't trace so we add the tracing here + defer un(trace(p, "File")) + return p.output(t.Node) + case *ast.ObjectList: + defer un(trace(p, "ObjectList")) + + var index int + for { + // Determine the location of the next actual non-comment + // item. If we're at the end, the next item is at "infinity" + var nextItem token.Pos + if index != len(t.Items) { + nextItem = t.Items[index].Pos() + } else { + nextItem = token.Pos{Offset: infinity, Line: infinity} + } + + // Go through the standalone comments in the file and print out + // the comments that we should be for this object item. + for _, c := range p.standaloneComments { + // Go through all the comments in the group. The group + // should be printed together, not separated by double newlines. + printed := false + newlinePrinted := false + for _, comment := range c.List { + // We only care about comments after the previous item + // we've printed so that comments are printed in the + // correct locations (between two objects for example). + // And before the next item. + if comment.Pos().After(p.prev) && comment.Pos().Before(nextItem) { + // if we hit the end add newlines so we can print the comment + // we don't do this if prev is invalid which means the + // beginning of the file since the first comment should + // be at the first line. + if !newlinePrinted && p.prev.IsValid() && index == len(t.Items) { + buf.Write([]byte{newline, newline}) + newlinePrinted = true + } + + // Write the actual comment. + buf.WriteString(comment.Text) + buf.WriteByte(newline) + + // Set printed to true to note that we printed something + printed = true + } + } + + // If we're not at the last item, write a new line so + // that there is a newline separating this comment from + // the next object. + if printed && index != len(t.Items) { + buf.WriteByte(newline) + } + } + + if index == len(t.Items) { + break + } + + buf.Write(p.output(t.Items[index])) + if index != len(t.Items)-1 { + // Always write a newline to separate us from the next item + buf.WriteByte(newline) + + // Need to determine if we're going to separate the next item + // with a blank line. The logic here is simple, though there + // are a few conditions: + // + // 1. The next object is more than one line away anyways, + // so we need an empty line. + // + // 2. The next object is not a "single line" object, so + // we need an empty line. + // + // 3. This current object is not a single line object, + // so we need an empty line. + current := t.Items[index] + next := t.Items[index+1] + if next.Pos().Line != t.Items[index].Pos().Line+1 || + !p.isSingleLineObject(next) || + !p.isSingleLineObject(current) { + buf.WriteByte(newline) + } + } + index++ + } + case *ast.ObjectKey: + buf.WriteString(t.Token.Text) + case *ast.ObjectItem: + p.prev = t.Pos() + buf.Write(p.objectItem(t)) + case *ast.LiteralType: + buf.Write(p.literalType(t)) + case *ast.ListType: + buf.Write(p.list(t)) + case *ast.ObjectType: + buf.Write(p.objectType(t)) + default: + fmt.Printf(" unknown type: %T\n", n) + } + + return buf.Bytes() +} + +func (p *printer) literalType(lit *ast.LiteralType) []byte { + result := []byte(lit.Token.Text) + switch lit.Token.Type { + case token.HEREDOC: + // Clear the trailing newline from heredocs + if result[len(result)-1] == '\n' { + result = result[:len(result)-1] + } + + // Poison lines 2+ so that we don't indent them + result = p.heredocIndent(result) + case token.STRING: + // If this is a multiline string, poison lines 2+ so we don't + // indent them. + if bytes.IndexRune(result, '\n') >= 0 { + result = p.heredocIndent(result) + } + } + + return result +} + +// objectItem returns the printable HCL form of an object item. An object type +// starts with one/multiple keys and has a value. The value might be of any +// type. +func (p *printer) objectItem(o *ast.ObjectItem) []byte { + defer un(trace(p, fmt.Sprintf("ObjectItem: %s", o.Keys[0].Token.Text))) + var buf bytes.Buffer + + if o.LeadComment != nil { + for _, comment := range o.LeadComment.List { + buf.WriteString(comment.Text) + buf.WriteByte(newline) + } + } + + // If key and val are on different lines, treat line comments like lead comments. + if o.LineComment != nil && o.Val.Pos().Line != o.Keys[0].Pos().Line { + for _, comment := range o.LineComment.List { + buf.WriteString(comment.Text) + buf.WriteByte(newline) + } + } + + for i, k := range o.Keys { + buf.WriteString(k.Token.Text) + buf.WriteByte(blank) + + // reach end of key + if o.Assign.IsValid() && i == len(o.Keys)-1 && len(o.Keys) == 1 { + buf.WriteString("=") + buf.WriteByte(blank) + } + } + + buf.Write(p.output(o.Val)) + + if o.LineComment != nil && o.Val.Pos().Line == o.Keys[0].Pos().Line { + buf.WriteByte(blank) + for _, comment := range o.LineComment.List { + buf.WriteString(comment.Text) + } + } + + return buf.Bytes() +} + +// objectType returns the printable HCL form of an object type. An object type +// begins with a brace and ends with a brace. +func (p *printer) objectType(o *ast.ObjectType) []byte { + defer un(trace(p, "ObjectType")) + var buf bytes.Buffer + buf.WriteString("{") + + var index int + var nextItem token.Pos + var commented, newlinePrinted bool + for { + // Determine the location of the next actual non-comment + // item. If we're at the end, the next item is the closing brace + if index != len(o.List.Items) { + nextItem = o.List.Items[index].Pos() + } else { + nextItem = o.Rbrace + } + + // Go through the standalone comments in the file and print out + // the comments that we should be for this object item. + for _, c := range p.standaloneComments { + printed := false + var lastCommentPos token.Pos + for _, comment := range c.List { + // We only care about comments after the previous item + // we've printed so that comments are printed in the + // correct locations (between two objects for example). + // And before the next item. + if comment.Pos().After(p.prev) && comment.Pos().Before(nextItem) { + // If there are standalone comments and the initial newline has not + // been printed yet, do it now. + if !newlinePrinted { + newlinePrinted = true + buf.WriteByte(newline) + } + + // add newline if it's between other printed nodes + if index > 0 { + commented = true + buf.WriteByte(newline) + } + + // Store this position + lastCommentPos = comment.Pos() + + // output the comment itself + buf.Write(p.indent(p.heredocIndent([]byte(comment.Text)))) + + // Set printed to true to note that we printed something + printed = true + + /* + if index != len(o.List.Items) { + buf.WriteByte(newline) // do not print on the end + } + */ + } + } + + // Stuff to do if we had comments + if printed { + // Always write a newline + buf.WriteByte(newline) + + // If there is another item in the object and our comment + // didn't hug it directly, then make sure there is a blank + // line separating them. + if nextItem != o.Rbrace && nextItem.Line != lastCommentPos.Line+1 { + buf.WriteByte(newline) + } + } + } + + if index == len(o.List.Items) { + p.prev = o.Rbrace + break + } + + // At this point we are sure that it's not a totally empty block: print + // the initial newline if it hasn't been printed yet by the previous + // block about standalone comments. + if !newlinePrinted { + buf.WriteByte(newline) + newlinePrinted = true + } + + // check if we have adjacent one liner items. If yes we'll going to align + // the comments. + var aligned []*ast.ObjectItem + for _, item := range o.List.Items[index:] { + // we don't group one line lists + if len(o.List.Items) == 1 { + break + } + + // one means a oneliner with out any lead comment + // two means a oneliner with lead comment + // anything else might be something else + cur := lines(string(p.objectItem(item))) + if cur > 2 { + break + } + + curPos := item.Pos() + + nextPos := token.Pos{} + if index != len(o.List.Items)-1 { + nextPos = o.List.Items[index+1].Pos() + } + + prevPos := token.Pos{} + if index != 0 { + prevPos = o.List.Items[index-1].Pos() + } + + // fmt.Println("DEBUG ----------------") + // fmt.Printf("prev = %+v prevPos: %s\n", prev, prevPos) + // fmt.Printf("cur = %+v curPos: %s\n", cur, curPos) + // fmt.Printf("next = %+v nextPos: %s\n", next, nextPos) + + if curPos.Line+1 == nextPos.Line { + aligned = append(aligned, item) + index++ + continue + } + + if curPos.Line-1 == prevPos.Line { + aligned = append(aligned, item) + index++ + + // finish if we have a new line or comment next. This happens + // if the next item is not adjacent + if curPos.Line+1 != nextPos.Line { + break + } + continue + } + + break + } + + // put newlines if the items are between other non aligned items. + // newlines are also added if there is a standalone comment already, so + // check it too + if !commented && index != len(aligned) { + buf.WriteByte(newline) + } + + if len(aligned) >= 1 { + p.prev = aligned[len(aligned)-1].Pos() + + items := p.alignedItems(aligned) + buf.Write(p.indent(items)) + } else { + p.prev = o.List.Items[index].Pos() + + buf.Write(p.indent(p.objectItem(o.List.Items[index]))) + index++ + } + + buf.WriteByte(newline) + } + + buf.WriteString("}") + return buf.Bytes() +} + +func (p *printer) alignedItems(items []*ast.ObjectItem) []byte { + var buf bytes.Buffer + + // find the longest key and value length, needed for alignment + var longestKeyLen int // longest key length + var longestValLen int // longest value length + for _, item := range items { + key := len(item.Keys[0].Token.Text) + val := len(p.output(item.Val)) + + if key > longestKeyLen { + longestKeyLen = key + } + + if val > longestValLen { + longestValLen = val + } + } + + for i, item := range items { + if item.LeadComment != nil { + for _, comment := range item.LeadComment.List { + buf.WriteString(comment.Text) + buf.WriteByte(newline) + } + } + + for i, k := range item.Keys { + keyLen := len(k.Token.Text) + buf.WriteString(k.Token.Text) + for i := 0; i < longestKeyLen-keyLen+1; i++ { + buf.WriteByte(blank) + } + + // reach end of key + if i == len(item.Keys)-1 && len(item.Keys) == 1 { + buf.WriteString("=") + buf.WriteByte(blank) + } + } + + val := p.output(item.Val) + valLen := len(val) + buf.Write(val) + + if item.Val.Pos().Line == item.Keys[0].Pos().Line && item.LineComment != nil { + for i := 0; i < longestValLen-valLen+1; i++ { + buf.WriteByte(blank) + } + + for _, comment := range item.LineComment.List { + buf.WriteString(comment.Text) + } + } + + // do not print for the last item + if i != len(items)-1 { + buf.WriteByte(newline) + } + } + + return buf.Bytes() +} + +// list returns the printable HCL form of an list type. +func (p *printer) list(l *ast.ListType) []byte { + if p.isSingleLineList(l) { + return p.singleLineList(l) + } + + var buf bytes.Buffer + buf.WriteString("[") + buf.WriteByte(newline) + + var longestLine int + for _, item := range l.List { + // for now we assume that the list only contains literal types + if lit, ok := item.(*ast.LiteralType); ok { + lineLen := len(lit.Token.Text) + if lineLen > longestLine { + longestLine = lineLen + } + } + } + + haveEmptyLine := false + for i, item := range l.List { + // If we have a lead comment, then we want to write that first + leadComment := false + if lit, ok := item.(*ast.LiteralType); ok && lit.LeadComment != nil { + leadComment = true + + // Ensure an empty line before every element with a + // lead comment (except the first item in a list). + if !haveEmptyLine && i != 0 { + buf.WriteByte(newline) + } + + for _, comment := range lit.LeadComment.List { + buf.Write(p.indent([]byte(comment.Text))) + buf.WriteByte(newline) + } + } + + // also indent each line + val := p.output(item) + curLen := len(val) + buf.Write(p.indent(val)) + + // if this item is a heredoc, then we output the comma on + // the next line. This is the only case this happens. + comma := []byte{','} + if lit, ok := item.(*ast.LiteralType); ok && lit.Token.Type == token.HEREDOC { + buf.WriteByte(newline) + comma = p.indent(comma) + } + + buf.Write(comma) + + if lit, ok := item.(*ast.LiteralType); ok && lit.LineComment != nil { + // if the next item doesn't have any comments, do not align + buf.WriteByte(blank) // align one space + for i := 0; i < longestLine-curLen; i++ { + buf.WriteByte(blank) + } + + for _, comment := range lit.LineComment.List { + buf.WriteString(comment.Text) + } + } + + buf.WriteByte(newline) + + // Ensure an empty line after every element with a + // lead comment (except the first item in a list). + haveEmptyLine = leadComment && i != len(l.List)-1 + if haveEmptyLine { + buf.WriteByte(newline) + } + } + + buf.WriteString("]") + return buf.Bytes() +} + +// isSingleLineList returns true if: +// * they were previously formatted entirely on one line +// * they consist entirely of literals +// * there are either no heredoc strings or the list has exactly one element +// * there are no line comments +func (printer) isSingleLineList(l *ast.ListType) bool { + for _, item := range l.List { + if item.Pos().Line != l.Lbrack.Line { + return false + } + + lit, ok := item.(*ast.LiteralType) + if !ok { + return false + } + + if lit.Token.Type == token.HEREDOC && len(l.List) != 1 { + return false + } + + if lit.LineComment != nil { + return false + } + } + + return true +} + +// singleLineList prints a simple single line list. +// For a definition of "simple", see isSingleLineList above. +func (p *printer) singleLineList(l *ast.ListType) []byte { + buf := &bytes.Buffer{} + + buf.WriteString("[") + for i, item := range l.List { + if i != 0 { + buf.WriteString(", ") + } + + // Output the item itself + buf.Write(p.output(item)) + + // The heredoc marker needs to be at the end of line. + if lit, ok := item.(*ast.LiteralType); ok && lit.Token.Type == token.HEREDOC { + buf.WriteByte(newline) + } + } + + buf.WriteString("]") + return buf.Bytes() +} + +// indent indents the lines of the given buffer for each non-empty line +func (p *printer) indent(buf []byte) []byte { + var prefix []byte + if p.cfg.SpacesWidth != 0 { + for i := 0; i < p.cfg.SpacesWidth; i++ { + prefix = append(prefix, blank) + } + } else { + prefix = []byte{tab} + } + + var res []byte + bol := true + for _, c := range buf { + if bol && c != '\n' { + res = append(res, prefix...) + } + + res = append(res, c) + bol = c == '\n' + } + return res +} + +// unindent removes all the indentation from the tombstoned lines +func (p *printer) unindent(buf []byte) []byte { + var res []byte + for i := 0; i < len(buf); i++ { + skip := len(buf)-i <= len(unindent) + if !skip { + skip = !bytes.Equal(unindent, buf[i:i+len(unindent)]) + } + if skip { + res = append(res, buf[i]) + continue + } + + // We have a marker. we have to backtrace here and clean out + // any whitespace ahead of our tombstone up to a \n + for j := len(res) - 1; j >= 0; j-- { + if res[j] == '\n' { + break + } + + res = res[:j] + } + + // Skip the entire unindent marker + i += len(unindent) - 1 + } + + return res +} + +// heredocIndent marks all the 2nd and further lines as unindentable +func (p *printer) heredocIndent(buf []byte) []byte { + var res []byte + bol := false + for _, c := range buf { + if bol && c != '\n' { + res = append(res, unindent...) + } + res = append(res, c) + bol = c == '\n' + } + return res +} + +// isSingleLineObject tells whether the given object item is a single +// line object such as "obj {}". +// +// A single line object: +// +// * has no lead comments (hence multi-line) +// * has no assignment +// * has no values in the stanza (within {}) +// +func (p *printer) isSingleLineObject(val *ast.ObjectItem) bool { + // If there is a lead comment, can't be one line + if val.LeadComment != nil { + return false + } + + // If there is assignment, we always break by line + if val.Assign.IsValid() { + return false + } + + // If it isn't an object type, then its not a single line object + ot, ok := val.Val.(*ast.ObjectType) + if !ok { + return false + } + + // If the object has no items, it is single line! + return len(ot.List.Items) == 0 +} + +func lines(txt string) int { + endline := 1 + for i := 0; i < len(txt); i++ { + if txt[i] == '\n' { + endline++ + } + } + return endline +} + +// ---------------------------------------------------------------------------- +// Tracing support + +func (p *printer) printTrace(a ...interface{}) { + if !p.enableTrace { + return + } + + const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " + const n = len(dots) + i := 2 * p.indentTrace + for i > n { + fmt.Print(dots) + i -= n + } + // i <= n + fmt.Print(dots[0:i]) + fmt.Println(a...) +} + +func trace(p *printer, msg string) *printer { + p.printTrace(msg, "(") + p.indentTrace++ + return p +} + +// Usage pattern: defer un(trace(p, "...")) +func un(p *printer) { + p.indentTrace-- + p.printTrace(")") +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go b/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go new file mode 100644 index 0000000..6617ab8 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/printer/printer.go @@ -0,0 +1,66 @@ +// Package printer implements printing of AST nodes to HCL format. +package printer + +import ( + "bytes" + "io" + "text/tabwriter" + + "github.com/hashicorp/hcl/hcl/ast" + "github.com/hashicorp/hcl/hcl/parser" +) + +var DefaultConfig = Config{ + SpacesWidth: 2, +} + +// A Config node controls the output of Fprint. +type Config struct { + SpacesWidth int // if set, it will use spaces instead of tabs for alignment +} + +func (c *Config) Fprint(output io.Writer, node ast.Node) error { + p := &printer{ + cfg: *c, + comments: make([]*ast.CommentGroup, 0), + standaloneComments: make([]*ast.CommentGroup, 0), + // enableTrace: true, + } + + p.collectComments(node) + + if _, err := output.Write(p.unindent(p.output(node))); err != nil { + return err + } + + // flush tabwriter, if any + var err error + if tw, _ := output.(*tabwriter.Writer); tw != nil { + err = tw.Flush() + } + + return err +} + +// Fprint "pretty-prints" an HCL node to output +// It calls Config.Fprint with default settings. +func Fprint(output io.Writer, node ast.Node) error { + return DefaultConfig.Fprint(output, node) +} + +// Format formats src HCL and returns the result. +func Format(src []byte) ([]byte, error) { + node, err := parser.Parse(src) + if err != nil { + return nil, err + } + + var buf bytes.Buffer + if err := DefaultConfig.Fprint(&buf, node); err != nil { + return nil, err + } + + // Add trailing newline to result + buf.WriteString("\n") + return buf.Bytes(), nil +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go b/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go new file mode 100644 index 0000000..624a18f --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go @@ -0,0 +1,652 @@ +// Package scanner implements a scanner for HCL (HashiCorp Configuration +// Language) source text. +package scanner + +import ( + "bytes" + "fmt" + "os" + "regexp" + "unicode" + "unicode/utf8" + + "github.com/hashicorp/hcl/hcl/token" +) + +// eof represents a marker rune for the end of the reader. +const eof = rune(0) + +// Scanner defines a lexical scanner +type Scanner struct { + buf *bytes.Buffer // Source buffer for advancing and scanning + src []byte // Source buffer for immutable access + + // Source Position + srcPos token.Pos // current position + prevPos token.Pos // previous position, used for peek() method + + lastCharLen int // length of last character in bytes + lastLineLen int // length of last line in characters (for correct column reporting) + + tokStart int // token text start position + tokEnd int // token text end position + + // Error is called for each error encountered. If no Error + // function is set, the error is reported to os.Stderr. + Error func(pos token.Pos, msg string) + + // ErrorCount is incremented by one for each error encountered. + ErrorCount int + + // tokPos is the start position of most recently scanned token; set by + // Scan. The Filename field is always left untouched by the Scanner. If + // an error is reported (via Error) and Position is invalid, the scanner is + // not inside a token. + tokPos token.Pos +} + +// New creates and initializes a new instance of Scanner using src as +// its source content. +func New(src []byte) *Scanner { + // even though we accept a src, we read from a io.Reader compatible type + // (*bytes.Buffer). So in the future we might easily change it to streaming + // read. + b := bytes.NewBuffer(src) + s := &Scanner{ + buf: b, + src: src, + } + + // srcPosition always starts with 1 + s.srcPos.Line = 1 + return s +} + +// next reads the next rune from the bufferred reader. Returns the rune(0) if +// an error occurs (or io.EOF is returned). +func (s *Scanner) next() rune { + ch, size, err := s.buf.ReadRune() + if err != nil { + // advance for error reporting + s.srcPos.Column++ + s.srcPos.Offset += size + s.lastCharLen = size + return eof + } + + // remember last position + s.prevPos = s.srcPos + + s.srcPos.Column++ + s.lastCharLen = size + s.srcPos.Offset += size + + if ch == utf8.RuneError && size == 1 { + s.err("illegal UTF-8 encoding") + return ch + } + + if ch == '\n' { + s.srcPos.Line++ + s.lastLineLen = s.srcPos.Column + s.srcPos.Column = 0 + } + + if ch == '\x00' { + s.err("unexpected null character (0x00)") + return eof + } + + if ch == '\uE123' { + s.err("unicode code point U+E123 reserved for internal use") + return utf8.RuneError + } + + // debug + // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) + return ch +} + +// unread unreads the previous read Rune and updates the source position +func (s *Scanner) unread() { + if err := s.buf.UnreadRune(); err != nil { + panic(err) // this is user fault, we should catch it + } + s.srcPos = s.prevPos // put back last position +} + +// peek returns the next rune without advancing the reader. +func (s *Scanner) peek() rune { + peek, _, err := s.buf.ReadRune() + if err != nil { + return eof + } + + s.buf.UnreadRune() + return peek +} + +// Scan scans the next token and returns the token. +func (s *Scanner) Scan() token.Token { + ch := s.next() + + // skip white space + for isWhitespace(ch) { + ch = s.next() + } + + var tok token.Type + + // token text markings + s.tokStart = s.srcPos.Offset - s.lastCharLen + + // token position, initial next() is moving the offset by one(size of rune + // actually), though we are interested with the starting point + s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen + if s.srcPos.Column > 0 { + // common case: last character was not a '\n' + s.tokPos.Line = s.srcPos.Line + s.tokPos.Column = s.srcPos.Column + } else { + // last character was a '\n' + // (we cannot be at the beginning of the source + // since we have called next() at least once) + s.tokPos.Line = s.srcPos.Line - 1 + s.tokPos.Column = s.lastLineLen + } + + switch { + case isLetter(ch): + tok = token.IDENT + lit := s.scanIdentifier() + if lit == "true" || lit == "false" { + tok = token.BOOL + } + case isDecimal(ch): + tok = s.scanNumber(ch) + default: + switch ch { + case eof: + tok = token.EOF + case '"': + tok = token.STRING + s.scanString() + case '#', '/': + tok = token.COMMENT + s.scanComment(ch) + case '.': + tok = token.PERIOD + ch = s.peek() + if isDecimal(ch) { + tok = token.FLOAT + ch = s.scanMantissa(ch) + ch = s.scanExponent(ch) + } + case '<': + tok = token.HEREDOC + s.scanHeredoc() + case '[': + tok = token.LBRACK + case ']': + tok = token.RBRACK + case '{': + tok = token.LBRACE + case '}': + tok = token.RBRACE + case ',': + tok = token.COMMA + case '=': + tok = token.ASSIGN + case '+': + tok = token.ADD + case '-': + if isDecimal(s.peek()) { + ch := s.next() + tok = s.scanNumber(ch) + } else { + tok = token.SUB + } + default: + s.err("illegal char") + } + } + + // finish token ending + s.tokEnd = s.srcPos.Offset + + // create token literal + var tokenText string + if s.tokStart >= 0 { + tokenText = string(s.src[s.tokStart:s.tokEnd]) + } + s.tokStart = s.tokEnd // ensure idempotency of tokenText() call + + return token.Token{ + Type: tok, + Pos: s.tokPos, + Text: tokenText, + } +} + +func (s *Scanner) scanComment(ch rune) { + // single line comments + if ch == '#' || (ch == '/' && s.peek() != '*') { + if ch == '/' && s.peek() != '/' { + s.err("expected '/' for comment") + return + } + + ch = s.next() + for ch != '\n' && ch >= 0 && ch != eof { + ch = s.next() + } + if ch != eof && ch >= 0 { + s.unread() + } + return + } + + // be sure we get the character after /* This allows us to find comment's + // that are not erminated + if ch == '/' { + s.next() + ch = s.next() // read character after "/*" + } + + // look for /* - style comments + for { + if ch < 0 || ch == eof { + s.err("comment not terminated") + break + } + + ch0 := ch + ch = s.next() + if ch0 == '*' && ch == '/' { + break + } + } +} + +// scanNumber scans a HCL number definition starting with the given rune +func (s *Scanner) scanNumber(ch rune) token.Type { + if ch == '0' { + // check for hexadecimal, octal or float + ch = s.next() + if ch == 'x' || ch == 'X' { + // hexadecimal + ch = s.next() + found := false + for isHexadecimal(ch) { + ch = s.next() + found = true + } + + if !found { + s.err("illegal hexadecimal number") + } + + if ch != eof { + s.unread() + } + + return token.NUMBER + } + + // now it's either something like: 0421(octal) or 0.1231(float) + illegalOctal := false + for isDecimal(ch) { + ch = s.next() + if ch == '8' || ch == '9' { + // this is just a possibility. For example 0159 is illegal, but + // 0159.23 is valid. So we mark a possible illegal octal. If + // the next character is not a period, we'll print the error. + illegalOctal = true + } + } + + if ch == 'e' || ch == 'E' { + ch = s.scanExponent(ch) + return token.FLOAT + } + + if ch == '.' { + ch = s.scanFraction(ch) + + if ch == 'e' || ch == 'E' { + ch = s.next() + ch = s.scanExponent(ch) + } + return token.FLOAT + } + + if illegalOctal { + s.err("illegal octal number") + } + + if ch != eof { + s.unread() + } + return token.NUMBER + } + + s.scanMantissa(ch) + ch = s.next() // seek forward + if ch == 'e' || ch == 'E' { + ch = s.scanExponent(ch) + return token.FLOAT + } + + if ch == '.' { + ch = s.scanFraction(ch) + if ch == 'e' || ch == 'E' { + ch = s.next() + ch = s.scanExponent(ch) + } + return token.FLOAT + } + + if ch != eof { + s.unread() + } + return token.NUMBER +} + +// scanMantissa scans the mantissa beginning from the rune. It returns the next +// non decimal rune. It's used to determine wheter it's a fraction or exponent. +func (s *Scanner) scanMantissa(ch rune) rune { + scanned := false + for isDecimal(ch) { + ch = s.next() + scanned = true + } + + if scanned && ch != eof { + s.unread() + } + return ch +} + +// scanFraction scans the fraction after the '.' rune +func (s *Scanner) scanFraction(ch rune) rune { + if ch == '.' { + ch = s.peek() // we peek just to see if we can move forward + ch = s.scanMantissa(ch) + } + return ch +} + +// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' +// rune. +func (s *Scanner) scanExponent(ch rune) rune { + if ch == 'e' || ch == 'E' { + ch = s.next() + if ch == '-' || ch == '+' { + ch = s.next() + } + ch = s.scanMantissa(ch) + } + return ch +} + +// scanHeredoc scans a heredoc string +func (s *Scanner) scanHeredoc() { + // Scan the second '<' in example: '<= len(identBytes) && identRegexp.Match(s.src[lineStart:s.srcPos.Offset-s.lastCharLen]) { + break + } + + // Not an anchor match, record the start of a new line + lineStart = s.srcPos.Offset + } + + if ch == eof { + s.err("heredoc not terminated") + return + } + } + + return +} + +// scanString scans a quoted string +func (s *Scanner) scanString() { + braces := 0 + for { + // '"' opening already consumed + // read character after quote + ch := s.next() + + if (ch == '\n' && braces == 0) || ch < 0 || ch == eof { + s.err("literal not terminated") + return + } + + if ch == '"' && braces == 0 { + break + } + + // If we're going into a ${} then we can ignore quotes for awhile + if braces == 0 && ch == '$' && s.peek() == '{' { + braces++ + s.next() + } else if braces > 0 && ch == '{' { + braces++ + } + if braces > 0 && ch == '}' { + braces-- + } + + if ch == '\\' { + s.scanEscape() + } + } + + return +} + +// scanEscape scans an escape sequence +func (s *Scanner) scanEscape() rune { + // http://en.cppreference.com/w/cpp/language/escape + ch := s.next() // read character after '/' + switch ch { + case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': + // nothing to do + case '0', '1', '2', '3', '4', '5', '6', '7': + // octal notation + ch = s.scanDigits(ch, 8, 3) + case 'x': + // hexademical notation + ch = s.scanDigits(s.next(), 16, 2) + case 'u': + // universal character name + ch = s.scanDigits(s.next(), 16, 4) + case 'U': + // universal character name + ch = s.scanDigits(s.next(), 16, 8) + default: + s.err("illegal char escape") + } + return ch +} + +// scanDigits scans a rune with the given base for n times. For example an +// octal notation \184 would yield in scanDigits(ch, 8, 3) +func (s *Scanner) scanDigits(ch rune, base, n int) rune { + start := n + for n > 0 && digitVal(ch) < base { + ch = s.next() + if ch == eof { + // If we see an EOF, we halt any more scanning of digits + // immediately. + break + } + + n-- + } + if n > 0 { + s.err("illegal char escape") + } + + if n != start && ch != eof { + // we scanned all digits, put the last non digit char back, + // only if we read anything at all + s.unread() + } + + return ch +} + +// scanIdentifier scans an identifier and returns the literal string +func (s *Scanner) scanIdentifier() string { + offs := s.srcPos.Offset - s.lastCharLen + ch := s.next() + for isLetter(ch) || isDigit(ch) || ch == '-' || ch == '.' { + ch = s.next() + } + + if ch != eof { + s.unread() // we got identifier, put back latest char + } + + return string(s.src[offs:s.srcPos.Offset]) +} + +// recentPosition returns the position of the character immediately after the +// character or token returned by the last call to Scan. +func (s *Scanner) recentPosition() (pos token.Pos) { + pos.Offset = s.srcPos.Offset - s.lastCharLen + switch { + case s.srcPos.Column > 0: + // common case: last character was not a '\n' + pos.Line = s.srcPos.Line + pos.Column = s.srcPos.Column + case s.lastLineLen > 0: + // last character was a '\n' + // (we cannot be at the beginning of the source + // since we have called next() at least once) + pos.Line = s.srcPos.Line - 1 + pos.Column = s.lastLineLen + default: + // at the beginning of the source + pos.Line = 1 + pos.Column = 1 + } + return +} + +// err prints the error of any scanning to s.Error function. If the function is +// not defined, by default it prints them to os.Stderr +func (s *Scanner) err(msg string) { + s.ErrorCount++ + pos := s.recentPosition() + + if s.Error != nil { + s.Error(pos, msg) + return + } + + fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) +} + +// isHexadecimal returns true if the given rune is a letter +func isLetter(ch rune) bool { + return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) +} + +// isDigit returns true if the given rune is a decimal digit +func isDigit(ch rune) bool { + return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) +} + +// isDecimal returns true if the given rune is a decimal number +func isDecimal(ch rune) bool { + return '0' <= ch && ch <= '9' +} + +// isHexadecimal returns true if the given rune is an hexadecimal number +func isHexadecimal(ch rune) bool { + return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' +} + +// isWhitespace returns true if the rune is a space, tab, newline or carriage return +func isWhitespace(ch rune) bool { + return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' +} + +// digitVal returns the integer value of a given octal,decimal or hexadecimal rune +func digitVal(ch rune) int { + switch { + case '0' <= ch && ch <= '9': + return int(ch - '0') + case 'a' <= ch && ch <= 'f': + return int(ch - 'a' + 10) + case 'A' <= ch && ch <= 'F': + return int(ch - 'A' + 10) + } + return 16 // larger than any legal digit val +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go b/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go new file mode 100644 index 0000000..5f981ea --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go @@ -0,0 +1,241 @@ +package strconv + +import ( + "errors" + "unicode/utf8" +) + +// ErrSyntax indicates that a value does not have the right syntax for the target type. +var ErrSyntax = errors.New("invalid syntax") + +// Unquote interprets s as a single-quoted, double-quoted, +// or backquoted Go string literal, returning the string value +// that s quotes. (If s is single-quoted, it would be a Go +// character literal; Unquote returns the corresponding +// one-character string.) +func Unquote(s string) (t string, err error) { + n := len(s) + if n < 2 { + return "", ErrSyntax + } + quote := s[0] + if quote != s[n-1] { + return "", ErrSyntax + } + s = s[1 : n-1] + + if quote != '"' { + return "", ErrSyntax + } + if !contains(s, '$') && !contains(s, '{') && contains(s, '\n') { + return "", ErrSyntax + } + + // Is it trivial? Avoid allocation. + if !contains(s, '\\') && !contains(s, quote) && !contains(s, '$') { + switch quote { + case '"': + return s, nil + case '\'': + r, size := utf8.DecodeRuneInString(s) + if size == len(s) && (r != utf8.RuneError || size != 1) { + return s, nil + } + } + } + + var runeTmp [utf8.UTFMax]byte + buf := make([]byte, 0, 3*len(s)/2) // Try to avoid more allocations. + for len(s) > 0 { + // If we're starting a '${}' then let it through un-unquoted. + // Specifically: we don't unquote any characters within the `${}` + // section. + if s[0] == '$' && len(s) > 1 && s[1] == '{' { + buf = append(buf, '$', '{') + s = s[2:] + + // Continue reading until we find the closing brace, copying as-is + braces := 1 + for len(s) > 0 && braces > 0 { + r, size := utf8.DecodeRuneInString(s) + if r == utf8.RuneError { + return "", ErrSyntax + } + + s = s[size:] + + n := utf8.EncodeRune(runeTmp[:], r) + buf = append(buf, runeTmp[:n]...) + + switch r { + case '{': + braces++ + case '}': + braces-- + } + } + if braces != 0 { + return "", ErrSyntax + } + if len(s) == 0 { + // If there's no string left, we're done! + break + } else { + // If there's more left, we need to pop back up to the top of the loop + // in case there's another interpolation in this string. + continue + } + } + + if s[0] == '\n' { + return "", ErrSyntax + } + + c, multibyte, ss, err := unquoteChar(s, quote) + if err != nil { + return "", err + } + s = ss + if c < utf8.RuneSelf || !multibyte { + buf = append(buf, byte(c)) + } else { + n := utf8.EncodeRune(runeTmp[:], c) + buf = append(buf, runeTmp[:n]...) + } + if quote == '\'' && len(s) != 0 { + // single-quoted must be single character + return "", ErrSyntax + } + } + return string(buf), nil +} + +// contains reports whether the string contains the byte c. +func contains(s string, c byte) bool { + for i := 0; i < len(s); i++ { + if s[i] == c { + return true + } + } + return false +} + +func unhex(b byte) (v rune, ok bool) { + c := rune(b) + switch { + case '0' <= c && c <= '9': + return c - '0', true + case 'a' <= c && c <= 'f': + return c - 'a' + 10, true + case 'A' <= c && c <= 'F': + return c - 'A' + 10, true + } + return +} + +func unquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error) { + // easy cases + switch c := s[0]; { + case c == quote && (quote == '\'' || quote == '"'): + err = ErrSyntax + return + case c >= utf8.RuneSelf: + r, size := utf8.DecodeRuneInString(s) + return r, true, s[size:], nil + case c != '\\': + return rune(s[0]), false, s[1:], nil + } + + // hard case: c is backslash + if len(s) <= 1 { + err = ErrSyntax + return + } + c := s[1] + s = s[2:] + + switch c { + case 'a': + value = '\a' + case 'b': + value = '\b' + case 'f': + value = '\f' + case 'n': + value = '\n' + case 'r': + value = '\r' + case 't': + value = '\t' + case 'v': + value = '\v' + case 'x', 'u', 'U': + n := 0 + switch c { + case 'x': + n = 2 + case 'u': + n = 4 + case 'U': + n = 8 + } + var v rune + if len(s) < n { + err = ErrSyntax + return + } + for j := 0; j < n; j++ { + x, ok := unhex(s[j]) + if !ok { + err = ErrSyntax + return + } + v = v<<4 | x + } + s = s[n:] + if c == 'x' { + // single-byte string, possibly not UTF-8 + value = v + break + } + if v > utf8.MaxRune { + err = ErrSyntax + return + } + value = v + multibyte = true + case '0', '1', '2', '3', '4', '5', '6', '7': + v := rune(c) - '0' + if len(s) < 2 { + err = ErrSyntax + return + } + for j := 0; j < 2; j++ { // one digit already; two more + x := rune(s[j]) - '0' + if x < 0 || x > 7 { + err = ErrSyntax + return + } + v = (v << 3) | x + } + s = s[2:] + if v > 255 { + err = ErrSyntax + return + } + value = v + case '\\': + value = '\\' + case '\'', '"': + if c != quote { + err = ErrSyntax + return + } + value = rune(c) + default: + err = ErrSyntax + return + } + tail = s + return +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/position.go b/vendor/github.com/hashicorp/hcl/hcl/token/position.go new file mode 100644 index 0000000..59c1bb7 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/token/position.go @@ -0,0 +1,46 @@ +package token + +import "fmt" + +// Pos describes an arbitrary source position +// including the file, line, and column location. +// A Position is valid if the line number is > 0. +type Pos struct { + Filename string // filename, if any + Offset int // offset, starting at 0 + Line int // line number, starting at 1 + Column int // column number, starting at 1 (character count) +} + +// IsValid returns true if the position is valid. +func (p *Pos) IsValid() bool { return p.Line > 0 } + +// String returns a string in one of several forms: +// +// file:line:column valid position with file name +// line:column valid position without file name +// file invalid position with file name +// - invalid position without file name +func (p Pos) String() string { + s := p.Filename + if p.IsValid() { + if s != "" { + s += ":" + } + s += fmt.Sprintf("%d:%d", p.Line, p.Column) + } + if s == "" { + s = "-" + } + return s +} + +// Before reports whether the position p is before u. +func (p Pos) Before(u Pos) bool { + return u.Offset > p.Offset || u.Line > p.Line +} + +// After reports whether the position p is after u. +func (p Pos) After(u Pos) bool { + return u.Offset < p.Offset || u.Line < p.Line +} diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/token.go b/vendor/github.com/hashicorp/hcl/hcl/token/token.go new file mode 100644 index 0000000..e37c066 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/token/token.go @@ -0,0 +1,219 @@ +// Package token defines constants representing the lexical tokens for HCL +// (HashiCorp Configuration Language) +package token + +import ( + "fmt" + "strconv" + "strings" + + hclstrconv "github.com/hashicorp/hcl/hcl/strconv" +) + +// Token defines a single HCL token which can be obtained via the Scanner +type Token struct { + Type Type + Pos Pos + Text string + JSON bool +} + +// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) +type Type int + +const ( + // Special tokens + ILLEGAL Type = iota + EOF + COMMENT + + identifier_beg + IDENT // literals + literal_beg + NUMBER // 12345 + FLOAT // 123.45 + BOOL // true,false + STRING // "abc" + HEREDOC // < 0 { + // Pop the current item + n := len(frontier) + item := frontier[n-1] + frontier = frontier[:n-1] + + switch v := item.Val.(type) { + case *ast.ObjectType: + items, frontier = flattenObjectType(v, item, items, frontier) + case *ast.ListType: + items, frontier = flattenListType(v, item, items, frontier) + default: + items = append(items, item) + } + } + + // Reverse the list since the frontier model runs things backwards + for i := len(items)/2 - 1; i >= 0; i-- { + opp := len(items) - 1 - i + items[i], items[opp] = items[opp], items[i] + } + + // Done! Set the original items + list.Items = items + return n, true + }) +} + +func flattenListType( + ot *ast.ListType, + item *ast.ObjectItem, + items []*ast.ObjectItem, + frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { + // If the list is empty, keep the original list + if len(ot.List) == 0 { + items = append(items, item) + return items, frontier + } + + // All the elements of this object must also be objects! + for _, subitem := range ot.List { + if _, ok := subitem.(*ast.ObjectType); !ok { + items = append(items, item) + return items, frontier + } + } + + // Great! We have a match go through all the items and flatten + for _, elem := range ot.List { + // Add it to the frontier so that we can recurse + frontier = append(frontier, &ast.ObjectItem{ + Keys: item.Keys, + Assign: item.Assign, + Val: elem, + LeadComment: item.LeadComment, + LineComment: item.LineComment, + }) + } + + return items, frontier +} + +func flattenObjectType( + ot *ast.ObjectType, + item *ast.ObjectItem, + items []*ast.ObjectItem, + frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { + // If the list has no items we do not have to flatten anything + if ot.List.Items == nil { + items = append(items, item) + return items, frontier + } + + // All the elements of this object must also be objects! + for _, subitem := range ot.List.Items { + if _, ok := subitem.Val.(*ast.ObjectType); !ok { + items = append(items, item) + return items, frontier + } + } + + // Great! We have a match go through all the items and flatten + for _, subitem := range ot.List.Items { + // Copy the new key + keys := make([]*ast.ObjectKey, len(item.Keys)+len(subitem.Keys)) + copy(keys, item.Keys) + copy(keys[len(item.Keys):], subitem.Keys) + + // Add it to the frontier so that we can recurse + frontier = append(frontier, &ast.ObjectItem{ + Keys: keys, + Assign: item.Assign, + Val: subitem.Val, + LeadComment: item.LeadComment, + LineComment: item.LineComment, + }) + } + + return items, frontier +} diff --git a/vendor/github.com/hashicorp/hcl/json/parser/parser.go b/vendor/github.com/hashicorp/hcl/json/parser/parser.go new file mode 100644 index 0000000..125a5f0 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/parser/parser.go @@ -0,0 +1,313 @@ +package parser + +import ( + "errors" + "fmt" + + "github.com/hashicorp/hcl/hcl/ast" + hcltoken "github.com/hashicorp/hcl/hcl/token" + "github.com/hashicorp/hcl/json/scanner" + "github.com/hashicorp/hcl/json/token" +) + +type Parser struct { + sc *scanner.Scanner + + // Last read token + tok token.Token + commaPrev token.Token + + enableTrace bool + indent int + n int // buffer size (max = 1) +} + +func newParser(src []byte) *Parser { + return &Parser{ + sc: scanner.New(src), + } +} + +// Parse returns the fully parsed source and returns the abstract syntax tree. +func Parse(src []byte) (*ast.File, error) { + p := newParser(src) + return p.Parse() +} + +var errEofToken = errors.New("EOF token found") + +// Parse returns the fully parsed source and returns the abstract syntax tree. +func (p *Parser) Parse() (*ast.File, error) { + f := &ast.File{} + var err, scerr error + p.sc.Error = func(pos token.Pos, msg string) { + scerr = fmt.Errorf("%s: %s", pos, msg) + } + + // The root must be an object in JSON + object, err := p.object() + if scerr != nil { + return nil, scerr + } + if err != nil { + return nil, err + } + + // We make our final node an object list so it is more HCL compatible + f.Node = object.List + + // Flatten it, which finds patterns and turns them into more HCL-like + // AST trees. + flattenObjects(f.Node) + + return f, nil +} + +func (p *Parser) objectList() (*ast.ObjectList, error) { + defer un(trace(p, "ParseObjectList")) + node := &ast.ObjectList{} + + for { + n, err := p.objectItem() + if err == errEofToken { + break // we are finished + } + + // we don't return a nil node, because might want to use already + // collected items. + if err != nil { + return node, err + } + + node.Add(n) + + // Check for a followup comma. If it isn't a comma, then we're done + if tok := p.scan(); tok.Type != token.COMMA { + break + } + } + + return node, nil +} + +// objectItem parses a single object item +func (p *Parser) objectItem() (*ast.ObjectItem, error) { + defer un(trace(p, "ParseObjectItem")) + + keys, err := p.objectKey() + if err != nil { + return nil, err + } + + o := &ast.ObjectItem{ + Keys: keys, + } + + switch p.tok.Type { + case token.COLON: + pos := p.tok.Pos + o.Assign = hcltoken.Pos{ + Filename: pos.Filename, + Offset: pos.Offset, + Line: pos.Line, + Column: pos.Column, + } + + o.Val, err = p.objectValue() + if err != nil { + return nil, err + } + } + + return o, nil +} + +// objectKey parses an object key and returns a ObjectKey AST +func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { + keyCount := 0 + keys := make([]*ast.ObjectKey, 0) + + for { + tok := p.scan() + switch tok.Type { + case token.EOF: + return nil, errEofToken + case token.STRING: + keyCount++ + keys = append(keys, &ast.ObjectKey{ + Token: p.tok.HCLToken(), + }) + case token.COLON: + // If we have a zero keycount it means that we never got + // an object key, i.e. `{ :`. This is a syntax error. + if keyCount == 0 { + return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) + } + + // Done + return keys, nil + case token.ILLEGAL: + return nil, errors.New("illegal") + default: + return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) + } + } +} + +// object parses any type of object, such as number, bool, string, object or +// list. +func (p *Parser) objectValue() (ast.Node, error) { + defer un(trace(p, "ParseObjectValue")) + tok := p.scan() + + switch tok.Type { + case token.NUMBER, token.FLOAT, token.BOOL, token.NULL, token.STRING: + return p.literalType() + case token.LBRACE: + return p.objectType() + case token.LBRACK: + return p.listType() + case token.EOF: + return nil, errEofToken + } + + return nil, fmt.Errorf("Expected object value, got unknown token: %+v", tok) +} + +// object parses any type of object, such as number, bool, string, object or +// list. +func (p *Parser) object() (*ast.ObjectType, error) { + defer un(trace(p, "ParseType")) + tok := p.scan() + + switch tok.Type { + case token.LBRACE: + return p.objectType() + case token.EOF: + return nil, errEofToken + } + + return nil, fmt.Errorf("Expected object, got unknown token: %+v", tok) +} + +// objectType parses an object type and returns a ObjectType AST +func (p *Parser) objectType() (*ast.ObjectType, error) { + defer un(trace(p, "ParseObjectType")) + + // we assume that the currently scanned token is a LBRACE + o := &ast.ObjectType{} + + l, err := p.objectList() + + // if we hit RBRACE, we are good to go (means we parsed all Items), if it's + // not a RBRACE, it's an syntax error and we just return it. + if err != nil && p.tok.Type != token.RBRACE { + return nil, err + } + + o.List = l + return o, nil +} + +// listType parses a list type and returns a ListType AST +func (p *Parser) listType() (*ast.ListType, error) { + defer un(trace(p, "ParseListType")) + + // we assume that the currently scanned token is a LBRACK + l := &ast.ListType{} + + for { + tok := p.scan() + switch tok.Type { + case token.NUMBER, token.FLOAT, token.STRING: + node, err := p.literalType() + if err != nil { + return nil, err + } + + l.Add(node) + case token.COMMA: + continue + case token.LBRACE: + node, err := p.objectType() + if err != nil { + return nil, err + } + + l.Add(node) + case token.BOOL: + // TODO(arslan) should we support? not supported by HCL yet + case token.LBRACK: + // TODO(arslan) should we support nested lists? Even though it's + // written in README of HCL, it's not a part of the grammar + // (not defined in parse.y) + case token.RBRACK: + // finished + return l, nil + default: + return nil, fmt.Errorf("unexpected token while parsing list: %s", tok.Type) + } + + } +} + +// literalType parses a literal type and returns a LiteralType AST +func (p *Parser) literalType() (*ast.LiteralType, error) { + defer un(trace(p, "ParseLiteral")) + + return &ast.LiteralType{ + Token: p.tok.HCLToken(), + }, nil +} + +// scan returns the next token from the underlying scanner. If a token has +// been unscanned then read that instead. +func (p *Parser) scan() token.Token { + // If we have a token on the buffer, then return it. + if p.n != 0 { + p.n = 0 + return p.tok + } + + p.tok = p.sc.Scan() + return p.tok +} + +// unscan pushes the previously read token back onto the buffer. +func (p *Parser) unscan() { + p.n = 1 +} + +// ---------------------------------------------------------------------------- +// Parsing support + +func (p *Parser) printTrace(a ...interface{}) { + if !p.enableTrace { + return + } + + const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " + const n = len(dots) + fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) + + i := 2 * p.indent + for i > n { + fmt.Print(dots) + i -= n + } + // i <= n + fmt.Print(dots[0:i]) + fmt.Println(a...) +} + +func trace(p *Parser, msg string) *Parser { + p.printTrace(msg, "(") + p.indent++ + return p +} + +// Usage pattern: defer un(trace(p, "...")) +func un(p *Parser) { + p.indent-- + p.printTrace(")") +} diff --git a/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go b/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go new file mode 100644 index 0000000..fe3f0f0 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go @@ -0,0 +1,451 @@ +package scanner + +import ( + "bytes" + "fmt" + "os" + "unicode" + "unicode/utf8" + + "github.com/hashicorp/hcl/json/token" +) + +// eof represents a marker rune for the end of the reader. +const eof = rune(0) + +// Scanner defines a lexical scanner +type Scanner struct { + buf *bytes.Buffer // Source buffer for advancing and scanning + src []byte // Source buffer for immutable access + + // Source Position + srcPos token.Pos // current position + prevPos token.Pos // previous position, used for peek() method + + lastCharLen int // length of last character in bytes + lastLineLen int // length of last line in characters (for correct column reporting) + + tokStart int // token text start position + tokEnd int // token text end position + + // Error is called for each error encountered. If no Error + // function is set, the error is reported to os.Stderr. + Error func(pos token.Pos, msg string) + + // ErrorCount is incremented by one for each error encountered. + ErrorCount int + + // tokPos is the start position of most recently scanned token; set by + // Scan. The Filename field is always left untouched by the Scanner. If + // an error is reported (via Error) and Position is invalid, the scanner is + // not inside a token. + tokPos token.Pos +} + +// New creates and initializes a new instance of Scanner using src as +// its source content. +func New(src []byte) *Scanner { + // even though we accept a src, we read from a io.Reader compatible type + // (*bytes.Buffer). So in the future we might easily change it to streaming + // read. + b := bytes.NewBuffer(src) + s := &Scanner{ + buf: b, + src: src, + } + + // srcPosition always starts with 1 + s.srcPos.Line = 1 + return s +} + +// next reads the next rune from the bufferred reader. Returns the rune(0) if +// an error occurs (or io.EOF is returned). +func (s *Scanner) next() rune { + ch, size, err := s.buf.ReadRune() + if err != nil { + // advance for error reporting + s.srcPos.Column++ + s.srcPos.Offset += size + s.lastCharLen = size + return eof + } + + if ch == utf8.RuneError && size == 1 { + s.srcPos.Column++ + s.srcPos.Offset += size + s.lastCharLen = size + s.err("illegal UTF-8 encoding") + return ch + } + + // remember last position + s.prevPos = s.srcPos + + s.srcPos.Column++ + s.lastCharLen = size + s.srcPos.Offset += size + + if ch == '\n' { + s.srcPos.Line++ + s.lastLineLen = s.srcPos.Column + s.srcPos.Column = 0 + } + + // debug + // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) + return ch +} + +// unread unreads the previous read Rune and updates the source position +func (s *Scanner) unread() { + if err := s.buf.UnreadRune(); err != nil { + panic(err) // this is user fault, we should catch it + } + s.srcPos = s.prevPos // put back last position +} + +// peek returns the next rune without advancing the reader. +func (s *Scanner) peek() rune { + peek, _, err := s.buf.ReadRune() + if err != nil { + return eof + } + + s.buf.UnreadRune() + return peek +} + +// Scan scans the next token and returns the token. +func (s *Scanner) Scan() token.Token { + ch := s.next() + + // skip white space + for isWhitespace(ch) { + ch = s.next() + } + + var tok token.Type + + // token text markings + s.tokStart = s.srcPos.Offset - s.lastCharLen + + // token position, initial next() is moving the offset by one(size of rune + // actually), though we are interested with the starting point + s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen + if s.srcPos.Column > 0 { + // common case: last character was not a '\n' + s.tokPos.Line = s.srcPos.Line + s.tokPos.Column = s.srcPos.Column + } else { + // last character was a '\n' + // (we cannot be at the beginning of the source + // since we have called next() at least once) + s.tokPos.Line = s.srcPos.Line - 1 + s.tokPos.Column = s.lastLineLen + } + + switch { + case isLetter(ch): + lit := s.scanIdentifier() + if lit == "true" || lit == "false" { + tok = token.BOOL + } else if lit == "null" { + tok = token.NULL + } else { + s.err("illegal char") + } + case isDecimal(ch): + tok = s.scanNumber(ch) + default: + switch ch { + case eof: + tok = token.EOF + case '"': + tok = token.STRING + s.scanString() + case '.': + tok = token.PERIOD + ch = s.peek() + if isDecimal(ch) { + tok = token.FLOAT + ch = s.scanMantissa(ch) + ch = s.scanExponent(ch) + } + case '[': + tok = token.LBRACK + case ']': + tok = token.RBRACK + case '{': + tok = token.LBRACE + case '}': + tok = token.RBRACE + case ',': + tok = token.COMMA + case ':': + tok = token.COLON + case '-': + if isDecimal(s.peek()) { + ch := s.next() + tok = s.scanNumber(ch) + } else { + s.err("illegal char") + } + default: + s.err("illegal char: " + string(ch)) + } + } + + // finish token ending + s.tokEnd = s.srcPos.Offset + + // create token literal + var tokenText string + if s.tokStart >= 0 { + tokenText = string(s.src[s.tokStart:s.tokEnd]) + } + s.tokStart = s.tokEnd // ensure idempotency of tokenText() call + + return token.Token{ + Type: tok, + Pos: s.tokPos, + Text: tokenText, + } +} + +// scanNumber scans a HCL number definition starting with the given rune +func (s *Scanner) scanNumber(ch rune) token.Type { + zero := ch == '0' + pos := s.srcPos + + s.scanMantissa(ch) + ch = s.next() // seek forward + if ch == 'e' || ch == 'E' { + ch = s.scanExponent(ch) + return token.FLOAT + } + + if ch == '.' { + ch = s.scanFraction(ch) + if ch == 'e' || ch == 'E' { + ch = s.next() + ch = s.scanExponent(ch) + } + return token.FLOAT + } + + if ch != eof { + s.unread() + } + + // If we have a larger number and this is zero, error + if zero && pos != s.srcPos { + s.err("numbers cannot start with 0") + } + + return token.NUMBER +} + +// scanMantissa scans the mantissa beginning from the rune. It returns the next +// non decimal rune. It's used to determine wheter it's a fraction or exponent. +func (s *Scanner) scanMantissa(ch rune) rune { + scanned := false + for isDecimal(ch) { + ch = s.next() + scanned = true + } + + if scanned && ch != eof { + s.unread() + } + return ch +} + +// scanFraction scans the fraction after the '.' rune +func (s *Scanner) scanFraction(ch rune) rune { + if ch == '.' { + ch = s.peek() // we peek just to see if we can move forward + ch = s.scanMantissa(ch) + } + return ch +} + +// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' +// rune. +func (s *Scanner) scanExponent(ch rune) rune { + if ch == 'e' || ch == 'E' { + ch = s.next() + if ch == '-' || ch == '+' { + ch = s.next() + } + ch = s.scanMantissa(ch) + } + return ch +} + +// scanString scans a quoted string +func (s *Scanner) scanString() { + braces := 0 + for { + // '"' opening already consumed + // read character after quote + ch := s.next() + + if ch == '\n' || ch < 0 || ch == eof { + s.err("literal not terminated") + return + } + + if ch == '"' { + break + } + + // If we're going into a ${} then we can ignore quotes for awhile + if braces == 0 && ch == '$' && s.peek() == '{' { + braces++ + s.next() + } else if braces > 0 && ch == '{' { + braces++ + } + if braces > 0 && ch == '}' { + braces-- + } + + if ch == '\\' { + s.scanEscape() + } + } + + return +} + +// scanEscape scans an escape sequence +func (s *Scanner) scanEscape() rune { + // http://en.cppreference.com/w/cpp/language/escape + ch := s.next() // read character after '/' + switch ch { + case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': + // nothing to do + case '0', '1', '2', '3', '4', '5', '6', '7': + // octal notation + ch = s.scanDigits(ch, 8, 3) + case 'x': + // hexademical notation + ch = s.scanDigits(s.next(), 16, 2) + case 'u': + // universal character name + ch = s.scanDigits(s.next(), 16, 4) + case 'U': + // universal character name + ch = s.scanDigits(s.next(), 16, 8) + default: + s.err("illegal char escape") + } + return ch +} + +// scanDigits scans a rune with the given base for n times. For example an +// octal notation \184 would yield in scanDigits(ch, 8, 3) +func (s *Scanner) scanDigits(ch rune, base, n int) rune { + for n > 0 && digitVal(ch) < base { + ch = s.next() + n-- + } + if n > 0 { + s.err("illegal char escape") + } + + // we scanned all digits, put the last non digit char back + s.unread() + return ch +} + +// scanIdentifier scans an identifier and returns the literal string +func (s *Scanner) scanIdentifier() string { + offs := s.srcPos.Offset - s.lastCharLen + ch := s.next() + for isLetter(ch) || isDigit(ch) || ch == '-' { + ch = s.next() + } + + if ch != eof { + s.unread() // we got identifier, put back latest char + } + + return string(s.src[offs:s.srcPos.Offset]) +} + +// recentPosition returns the position of the character immediately after the +// character or token returned by the last call to Scan. +func (s *Scanner) recentPosition() (pos token.Pos) { + pos.Offset = s.srcPos.Offset - s.lastCharLen + switch { + case s.srcPos.Column > 0: + // common case: last character was not a '\n' + pos.Line = s.srcPos.Line + pos.Column = s.srcPos.Column + case s.lastLineLen > 0: + // last character was a '\n' + // (we cannot be at the beginning of the source + // since we have called next() at least once) + pos.Line = s.srcPos.Line - 1 + pos.Column = s.lastLineLen + default: + // at the beginning of the source + pos.Line = 1 + pos.Column = 1 + } + return +} + +// err prints the error of any scanning to s.Error function. If the function is +// not defined, by default it prints them to os.Stderr +func (s *Scanner) err(msg string) { + s.ErrorCount++ + pos := s.recentPosition() + + if s.Error != nil { + s.Error(pos, msg) + return + } + + fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) +} + +// isHexadecimal returns true if the given rune is a letter +func isLetter(ch rune) bool { + return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) +} + +// isHexadecimal returns true if the given rune is a decimal digit +func isDigit(ch rune) bool { + return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) +} + +// isHexadecimal returns true if the given rune is a decimal number +func isDecimal(ch rune) bool { + return '0' <= ch && ch <= '9' +} + +// isHexadecimal returns true if the given rune is an hexadecimal number +func isHexadecimal(ch rune) bool { + return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' +} + +// isWhitespace returns true if the rune is a space, tab, newline or carriage return +func isWhitespace(ch rune) bool { + return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' +} + +// digitVal returns the integer value of a given octal,decimal or hexadecimal rune +func digitVal(ch rune) int { + switch { + case '0' <= ch && ch <= '9': + return int(ch - '0') + case 'a' <= ch && ch <= 'f': + return int(ch - 'a' + 10) + case 'A' <= ch && ch <= 'F': + return int(ch - 'A' + 10) + } + return 16 // larger than any legal digit val +} diff --git a/vendor/github.com/hashicorp/hcl/json/token/position.go b/vendor/github.com/hashicorp/hcl/json/token/position.go new file mode 100644 index 0000000..59c1bb7 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/token/position.go @@ -0,0 +1,46 @@ +package token + +import "fmt" + +// Pos describes an arbitrary source position +// including the file, line, and column location. +// A Position is valid if the line number is > 0. +type Pos struct { + Filename string // filename, if any + Offset int // offset, starting at 0 + Line int // line number, starting at 1 + Column int // column number, starting at 1 (character count) +} + +// IsValid returns true if the position is valid. +func (p *Pos) IsValid() bool { return p.Line > 0 } + +// String returns a string in one of several forms: +// +// file:line:column valid position with file name +// line:column valid position without file name +// file invalid position with file name +// - invalid position without file name +func (p Pos) String() string { + s := p.Filename + if p.IsValid() { + if s != "" { + s += ":" + } + s += fmt.Sprintf("%d:%d", p.Line, p.Column) + } + if s == "" { + s = "-" + } + return s +} + +// Before reports whether the position p is before u. +func (p Pos) Before(u Pos) bool { + return u.Offset > p.Offset || u.Line > p.Line +} + +// After reports whether the position p is after u. +func (p Pos) After(u Pos) bool { + return u.Offset < p.Offset || u.Line < p.Line +} diff --git a/vendor/github.com/hashicorp/hcl/json/token/token.go b/vendor/github.com/hashicorp/hcl/json/token/token.go new file mode 100644 index 0000000..95a0c3e --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/token/token.go @@ -0,0 +1,118 @@ +package token + +import ( + "fmt" + "strconv" + + hcltoken "github.com/hashicorp/hcl/hcl/token" +) + +// Token defines a single HCL token which can be obtained via the Scanner +type Token struct { + Type Type + Pos Pos + Text string +} + +// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) +type Type int + +const ( + // Special tokens + ILLEGAL Type = iota + EOF + + identifier_beg + literal_beg + NUMBER // 12345 + FLOAT // 123.45 + BOOL // true,false + STRING // "abc" + NULL // null + literal_end + identifier_end + + operator_beg + LBRACK // [ + LBRACE // { + COMMA // , + PERIOD // . + COLON // : + + RBRACK // ] + RBRACE // } + + operator_end +) + +var tokens = [...]string{ + ILLEGAL: "ILLEGAL", + + EOF: "EOF", + + NUMBER: "NUMBER", + FLOAT: "FLOAT", + BOOL: "BOOL", + STRING: "STRING", + NULL: "NULL", + + LBRACK: "LBRACK", + LBRACE: "LBRACE", + COMMA: "COMMA", + PERIOD: "PERIOD", + COLON: "COLON", + + RBRACK: "RBRACK", + RBRACE: "RBRACE", +} + +// String returns the string corresponding to the token tok. +func (t Type) String() string { + s := "" + if 0 <= t && t < Type(len(tokens)) { + s = tokens[t] + } + if s == "" { + s = "token(" + strconv.Itoa(int(t)) + ")" + } + return s +} + +// IsIdentifier returns true for tokens corresponding to identifiers and basic +// type literals; it returns false otherwise. +func (t Type) IsIdentifier() bool { return identifier_beg < t && t < identifier_end } + +// IsLiteral returns true for tokens corresponding to basic type literals; it +// returns false otherwise. +func (t Type) IsLiteral() bool { return literal_beg < t && t < literal_end } + +// IsOperator returns true for tokens corresponding to operators and +// delimiters; it returns false otherwise. +func (t Type) IsOperator() bool { return operator_beg < t && t < operator_end } + +// String returns the token's literal text. Note that this is only +// applicable for certain token types, such as token.IDENT, +// token.STRING, etc.. +func (t Token) String() string { + return fmt.Sprintf("%s %s %s", t.Pos.String(), t.Type.String(), t.Text) +} + +// HCLToken converts this token to an HCL token. +// +// The token type must be a literal type or this will panic. +func (t Token) HCLToken() hcltoken.Token { + switch t.Type { + case BOOL: + return hcltoken.Token{Type: hcltoken.BOOL, Text: t.Text} + case FLOAT: + return hcltoken.Token{Type: hcltoken.FLOAT, Text: t.Text} + case NULL: + return hcltoken.Token{Type: hcltoken.STRING, Text: ""} + case NUMBER: + return hcltoken.Token{Type: hcltoken.NUMBER, Text: t.Text} + case STRING: + return hcltoken.Token{Type: hcltoken.STRING, Text: t.Text, JSON: true} + default: + panic(fmt.Sprintf("unimplemented HCLToken for type: %s", t.Type)) + } +} diff --git a/vendor/github.com/hashicorp/hcl/lex.go b/vendor/github.com/hashicorp/hcl/lex.go new file mode 100644 index 0000000..d9993c2 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/lex.go @@ -0,0 +1,38 @@ +package hcl + +import ( + "unicode" + "unicode/utf8" +) + +type lexModeValue byte + +const ( + lexModeUnknown lexModeValue = iota + lexModeHcl + lexModeJson +) + +// lexMode returns whether we're going to be parsing in JSON +// mode or HCL mode. +func lexMode(v []byte) lexModeValue { + var ( + r rune + w int + offset int + ) + + for { + r, w = utf8.DecodeRune(v[offset:]) + offset += w + if unicode.IsSpace(r) { + continue + } + if r == '{' { + return lexModeJson + } + break + } + + return lexModeHcl +} diff --git a/vendor/github.com/hashicorp/hcl/parse.go b/vendor/github.com/hashicorp/hcl/parse.go new file mode 100644 index 0000000..1fca53c --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/parse.go @@ -0,0 +1,39 @@ +package hcl + +import ( + "fmt" + + "github.com/hashicorp/hcl/hcl/ast" + hclParser "github.com/hashicorp/hcl/hcl/parser" + jsonParser "github.com/hashicorp/hcl/json/parser" +) + +// ParseBytes accepts as input byte slice and returns ast tree. +// +// Input can be either JSON or HCL +func ParseBytes(in []byte) (*ast.File, error) { + return parse(in) +} + +// ParseString accepts input as a string and returns ast tree. +func ParseString(input string) (*ast.File, error) { + return parse([]byte(input)) +} + +func parse(in []byte) (*ast.File, error) { + switch lexMode(in) { + case lexModeHcl: + return hclParser.Parse(in) + case lexModeJson: + return jsonParser.Parse(in) + } + + return nil, fmt.Errorf("unknown config format") +} + +// Parse parses the given input and returns the root object. +// +// The input format can be either HCL or JSON. +func Parse(input string) (*ast.File, error) { + return parse([]byte(input)) +} diff --git a/vendor/github.com/magiconair/properties/.gitignore b/vendor/github.com/magiconair/properties/.gitignore new file mode 100644 index 0000000..e7081ff --- /dev/null +++ b/vendor/github.com/magiconair/properties/.gitignore @@ -0,0 +1,6 @@ +*.sublime-project +*.sublime-workspace +*.un~ +*.swp +.idea/ +*.iml diff --git a/vendor/github.com/magiconair/properties/.travis.yml b/vendor/github.com/magiconair/properties/.travis.yml new file mode 100644 index 0000000..f07376f --- /dev/null +++ b/vendor/github.com/magiconair/properties/.travis.yml @@ -0,0 +1,12 @@ +language: go +go: + - 1.4.x + - 1.5.x + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - "1.10.x" + - "1.11.x" + - "1.12.x" + - tip diff --git a/vendor/github.com/magiconair/properties/CHANGELOG.md b/vendor/github.com/magiconair/properties/CHANGELOG.md new file mode 100644 index 0000000..176626a --- /dev/null +++ b/vendor/github.com/magiconair/properties/CHANGELOG.md @@ -0,0 +1,139 @@ +## Changelog + +### [1.8.1](https://github.com/magiconair/properties/tree/v1.8.1) - 10 May 2019 + + * [PR #26](https://github.com/magiconair/properties/pull/35): Close body always after request + + This patch ensures that in `LoadURL` the response body is always closed. + + Thanks to [@liubog2008](https://github.com/liubog2008) for the patch. + +### [1.8](https://github.com/magiconair/properties/tree/v1.8) - 15 May 2018 + + * [PR #26](https://github.com/magiconair/properties/pull/26): Disable expansion during loading + + This adds the option to disable property expansion during loading. + + Thanks to [@kmala](https://github.com/kmala) for the patch. + +### [1.7.6](https://github.com/magiconair/properties/tree/v1.7.6) - 14 Feb 2018 + + * [PR #29](https://github.com/magiconair/properties/pull/29): Reworked expansion logic to handle more complex cases. + + See PR for an example. + + Thanks to [@yobert](https://github.com/yobert) for the fix. + +### [1.7.5](https://github.com/magiconair/properties/tree/v1.7.5) - 13 Feb 2018 + + * [PR #28](https://github.com/magiconair/properties/pull/28): Support duplicate expansions in the same value + + Values which expand the same key multiple times (e.g. `key=${a} ${a}`) will no longer fail + with a `circular reference error`. + + Thanks to [@yobert](https://github.com/yobert) for the fix. + +### [1.7.4](https://github.com/magiconair/properties/tree/v1.7.4) - 31 Oct 2017 + + * [Issue #23](https://github.com/magiconair/properties/issues/23): Ignore blank lines with whitespaces + + * [PR #24](https://github.com/magiconair/properties/pull/24): Update keys when DisableExpansion is enabled + + Thanks to [@mgurov](https://github.com/mgurov) for the fix. + +### [1.7.3](https://github.com/magiconair/properties/tree/v1.7.3) - 10 Jul 2017 + + * [Issue #17](https://github.com/magiconair/properties/issues/17): Add [SetValue()](http://godoc.org/github.com/magiconair/properties#Properties.SetValue) method to set values generically + * [Issue #22](https://github.com/magiconair/properties/issues/22): Add [LoadMap()](http://godoc.org/github.com/magiconair/properties#LoadMap) function to load properties from a string map + +### [1.7.2](https://github.com/magiconair/properties/tree/v1.7.2) - 20 Mar 2017 + + * [Issue #15](https://github.com/magiconair/properties/issues/15): Drop gocheck dependency + * [PR #21](https://github.com/magiconair/properties/pull/21): Add [Map()](http://godoc.org/github.com/magiconair/properties#Properties.Map) and [FilterFunc()](http://godoc.org/github.com/magiconair/properties#Properties.FilterFunc) + +### [1.7.1](https://github.com/magiconair/properties/tree/v1.7.1) - 13 Jan 2017 + + * [Issue #14](https://github.com/magiconair/properties/issues/14): Decouple TestLoadExpandedFile from `$USER` + * [PR #12](https://github.com/magiconair/properties/pull/12): Load from files and URLs + * [PR #16](https://github.com/magiconair/properties/pull/16): Keep gofmt happy + * [PR #18](https://github.com/magiconair/properties/pull/18): Fix Delete() function + +### [1.7.0](https://github.com/magiconair/properties/tree/v1.7.0) - 20 Mar 2016 + + * [Issue #10](https://github.com/magiconair/properties/issues/10): Add [LoadURL,LoadURLs,MustLoadURL,MustLoadURLs](http://godoc.org/github.com/magiconair/properties#LoadURL) method to load properties from a URL. + * [Issue #11](https://github.com/magiconair/properties/issues/11): Add [LoadString,MustLoadString](http://godoc.org/github.com/magiconair/properties#LoadString) method to load properties from an UTF8 string. + * [PR #8](https://github.com/magiconair/properties/pull/8): Add [MustFlag](http://godoc.org/github.com/magiconair/properties#Properties.MustFlag) method to provide overrides via command line flags. (@pascaldekloe) + +### [1.6.0](https://github.com/magiconair/properties/tree/v1.6.0) - 11 Dec 2015 + + * Add [Decode](http://godoc.org/github.com/magiconair/properties#Properties.Decode) method to populate struct from properties via tags. + +### [1.5.6](https://github.com/magiconair/properties/tree/v1.5.6) - 18 Oct 2015 + + * Vendored in gopkg.in/check.v1 + +### [1.5.5](https://github.com/magiconair/properties/tree/v1.5.5) - 31 Jul 2015 + + * [PR #6](https://github.com/magiconair/properties/pull/6): Add [Delete](http://godoc.org/github.com/magiconair/properties#Properties.Delete) method to remove keys including comments. (@gerbenjacobs) + +### [1.5.4](https://github.com/magiconair/properties/tree/v1.5.4) - 23 Jun 2015 + + * [Issue #5](https://github.com/magiconair/properties/issues/5): Allow disabling of property expansion [DisableExpansion](http://godoc.org/github.com/magiconair/properties#Properties.DisableExpansion). When property expansion is disabled Properties become a simple key/value store and don't check for circular references. + +### [1.5.3](https://github.com/magiconair/properties/tree/v1.5.3) - 02 Jun 2015 + + * [Issue #4](https://github.com/magiconair/properties/issues/4): Maintain key order in [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) and [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) + +### [1.5.2](https://github.com/magiconair/properties/tree/v1.5.2) - 10 Apr 2015 + + * [Issue #3](https://github.com/magiconair/properties/issues/3): Don't print comments in [WriteComment()](http://godoc.org/github.com/magiconair/properties#Properties.WriteComment) if they are all empty + * Add clickable links to README + +### [1.5.1](https://github.com/magiconair/properties/tree/v1.5.1) - 08 Dec 2014 + + * Added [GetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.GetParsedDuration) and [MustGetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.MustGetParsedDuration) for values specified compatible with + [time.ParseDuration()](http://golang.org/pkg/time/#ParseDuration). + +### [1.5.0](https://github.com/magiconair/properties/tree/v1.5.0) - 18 Nov 2014 + + * Added support for single and multi-line comments (reading, writing and updating) + * The order of keys is now preserved + * Calling [Set()](http://godoc.org/github.com/magiconair/properties#Properties.Set) with an empty key now silently ignores the call and does not create a new entry + * Added a [MustSet()](http://godoc.org/github.com/magiconair/properties#Properties.MustSet) method + * Migrated test library from launchpad.net/gocheck to [gopkg.in/check.v1](http://gopkg.in/check.v1) + +### [1.4.2](https://github.com/magiconair/properties/tree/v1.4.2) - 15 Nov 2014 + + * [Issue #2](https://github.com/magiconair/properties/issues/2): Fixed goroutine leak in parser which created two lexers but cleaned up only one + +### [1.4.1](https://github.com/magiconair/properties/tree/v1.4.1) - 13 Nov 2014 + + * [Issue #1](https://github.com/magiconair/properties/issues/1): Fixed bug in Keys() method which returned an empty string + +### [1.4.0](https://github.com/magiconair/properties/tree/v1.4.0) - 23 Sep 2014 + + * Added [Keys()](http://godoc.org/github.com/magiconair/properties#Properties.Keys) to get the keys + * Added [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) and [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) to get a subset of the properties + +### [1.3.0](https://github.com/magiconair/properties/tree/v1.3.0) - 18 Mar 2014 + +* Added support for time.Duration +* Made MustXXX() failure beha[ior configurable (log.Fatal, panic](https://github.com/magiconair/properties/tree/vior configurable (log.Fatal, panic) - custom) +* Changed default of MustXXX() failure from panic to log.Fatal + +### [1.2.0](https://github.com/magiconair/properties/tree/v1.2.0) - 05 Mar 2014 + +* Added MustGet... functions +* Added support for int and uint with range checks on 32 bit platforms + +### [1.1.0](https://github.com/magiconair/properties/tree/v1.1.0) - 20 Jan 2014 + +* Renamed from goproperties to properties +* Added support for expansion of environment vars in + filenames and value expressions +* Fixed bug where value expressions were not at the + start of the string + +### [1.0.0](https://github.com/magiconair/properties/tree/v1.0.0) - 7 Jan 2014 + +* Initial release diff --git a/vendor/github.com/magiconair/properties/LICENSE b/vendor/github.com/magiconair/properties/LICENSE new file mode 100644 index 0000000..b387087 --- /dev/null +++ b/vendor/github.com/magiconair/properties/LICENSE @@ -0,0 +1,25 @@ +goproperties - properties file decoder for Go + +Copyright (c) 2013-2018 - Frank Schroeder + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/magiconair/properties/README.md b/vendor/github.com/magiconair/properties/README.md new file mode 100644 index 0000000..42ed5c3 --- /dev/null +++ b/vendor/github.com/magiconair/properties/README.md @@ -0,0 +1,129 @@ +[![](https://img.shields.io/github/tag/magiconair/properties.svg?style=flat-square&label=release)](https://github.com/magiconair/properties/releases) +[![Travis CI Status](https://img.shields.io/travis/magiconair/properties.svg?branch=master&style=flat-square&label=travis)](https://travis-ci.org/magiconair/properties) +[![CircleCI Status](https://img.shields.io/circleci/project/github/magiconair/properties.svg?label=circle+ci&style=flat-square)](https://circleci.com/gh/magiconair/properties) +[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg?style=flat-square)](https://raw.githubusercontent.com/magiconair/properties/master/LICENSE) +[![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties) + +# Overview + +#### Please run `git pull --tags` to update the tags. See [below](#updated-git-tags) why. + +properties is a Go library for reading and writing properties files. + +It supports reading from multiple files or URLs and Spring style recursive +property expansion of expressions like `${key}` to their corresponding value. +Value expressions can refer to other keys like in `${key}` or to environment +variables like in `${USER}`. Filenames can also contain environment variables +like in `/home/${USER}/myapp.properties`. + +Properties can be decoded into structs, maps, arrays and values through +struct tags. + +Comments and the order of keys are preserved. Comments can be modified +and can be written to the output. + +The properties library supports both ISO-8859-1 and UTF-8 encoded data. + +Starting from version 1.3.0 the behavior of the MustXXX() functions is +configurable by providing a custom `ErrorHandler` function. The default has +changed from `panic` to `log.Fatal` but this is configurable and custom +error handling functions can be provided. See the package documentation for +details. + +Read the full documentation on [![GoDoc](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](http://godoc.org/github.com/magiconair/properties) + +## Getting Started + +```go +import ( + "flag" + "github.com/magiconair/properties" +) + +func main() { + // init from a file + p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8) + + // or multiple files + p = properties.MustLoadFiles([]string{ + "${HOME}/config.properties", + "${HOME}/config-${USER}.properties", + }, properties.UTF8, true) + + // or from a map + p = properties.LoadMap(map[string]string{"key": "value", "abc": "def"}) + + // or from a string + p = properties.MustLoadString("key=value\nabc=def") + + // or from a URL + p = properties.MustLoadURL("http://host/path") + + // or from multiple URLs + p = properties.MustLoadURL([]string{ + "http://host/config", + "http://host/config-${USER}", + }, true) + + // or from flags + p.MustFlag(flag.CommandLine) + + // get values through getters + host := p.MustGetString("host") + port := p.GetInt("port", 8080) + + // or through Decode + type Config struct { + Host string `properties:"host"` + Port int `properties:"port,default=9000"` + Accept []string `properties:"accept,default=image/png;image;gif"` + Timeout time.Duration `properties:"timeout,default=5s"` + } + var cfg Config + if err := p.Decode(&cfg); err != nil { + log.Fatal(err) + } +} + +``` + +## Installation and Upgrade + +``` +$ go get -u github.com/magiconair/properties +``` + +## License + +2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) file for details. + +## ToDo + +* Dump contents with passwords and secrets obscured + +## Updated Git tags + +#### 13 Feb 2018 + +I realized that all of the git tags I had pushed before v1.7.5 were lightweight tags +and I've only recently learned that this doesn't play well with `git describe` 😞 + +I have replaced all lightweight tags with signed tags using this script which should +retain the commit date, name and email address. Please run `git pull --tags` to update them. + +Worst case you have to reclone the repo. + +```shell +#!/bin/bash +tag=$1 +echo "Updating $tag" +date=$(git show ${tag}^0 --format=%aD | head -1) +email=$(git show ${tag}^0 --format=%aE | head -1) +name=$(git show ${tag}^0 --format=%aN | head -1) +GIT_COMMITTER_DATE="$date" GIT_COMMITTER_NAME="$name" GIT_COMMITTER_EMAIL="$email" git tag -s -f ${tag} ${tag}^0 -m ${tag} +``` + +I apologize for the inconvenience. + +Frank + diff --git a/vendor/github.com/magiconair/properties/decode.go b/vendor/github.com/magiconair/properties/decode.go new file mode 100644 index 0000000..3ebf804 --- /dev/null +++ b/vendor/github.com/magiconair/properties/decode.go @@ -0,0 +1,289 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +import ( + "fmt" + "reflect" + "strconv" + "strings" + "time" +) + +// Decode assigns property values to exported fields of a struct. +// +// Decode traverses v recursively and returns an error if a value cannot be +// converted to the field type or a required value is missing for a field. +// +// The following type dependent decodings are used: +// +// String, boolean, numeric fields have the value of the property key assigned. +// The property key name is the name of the field. A different key and a default +// value can be set in the field's tag. Fields without default value are +// required. If the value cannot be converted to the field type an error is +// returned. +// +// time.Duration fields have the result of time.ParseDuration() assigned. +// +// time.Time fields have the vaule of time.Parse() assigned. The default layout +// is time.RFC3339 but can be set in the field's tag. +// +// Arrays and slices of string, boolean, numeric, time.Duration and time.Time +// fields have the value interpreted as a comma separated list of values. The +// individual values are trimmed of whitespace and empty values are ignored. A +// default value can be provided as a semicolon separated list in the field's +// tag. +// +// Struct fields are decoded recursively using the field name plus "." as +// prefix. The prefix (without dot) can be overridden in the field's tag. +// Default values are not supported in the field's tag. Specify them on the +// fields of the inner struct instead. +// +// Map fields must have a key of type string and are decoded recursively by +// using the field's name plus ".' as prefix and the next element of the key +// name as map key. The prefix (without dot) can be overridden in the field's +// tag. Default values are not supported. +// +// Examples: +// +// // Field is ignored. +// Field int `properties:"-"` +// +// // Field is assigned value of 'Field'. +// Field int +// +// // Field is assigned value of 'myName'. +// Field int `properties:"myName"` +// +// // Field is assigned value of key 'myName' and has a default +// // value 15 if the key does not exist. +// Field int `properties:"myName,default=15"` +// +// // Field is assigned value of key 'Field' and has a default +// // value 15 if the key does not exist. +// Field int `properties:",default=15"` +// +// // Field is assigned value of key 'date' and the date +// // is in format 2006-01-02 +// Field time.Time `properties:"date,layout=2006-01-02"` +// +// // Field is assigned the non-empty and whitespace trimmed +// // values of key 'Field' split by commas. +// Field []string +// +// // Field is assigned the non-empty and whitespace trimmed +// // values of key 'Field' split by commas and has a default +// // value ["a", "b", "c"] if the key does not exist. +// Field []string `properties:",default=a;b;c"` +// +// // Field is decoded recursively with "Field." as key prefix. +// Field SomeStruct +// +// // Field is decoded recursively with "myName." as key prefix. +// Field SomeStruct `properties:"myName"` +// +// // Field is decoded recursively with "Field." as key prefix +// // and the next dotted element of the key as map key. +// Field map[string]string +// +// // Field is decoded recursively with "myName." as key prefix +// // and the next dotted element of the key as map key. +// Field map[string]string `properties:"myName"` +func (p *Properties) Decode(x interface{}) error { + t, v := reflect.TypeOf(x), reflect.ValueOf(x) + if t.Kind() != reflect.Ptr || v.Elem().Type().Kind() != reflect.Struct { + return fmt.Errorf("not a pointer to struct: %s", t) + } + if err := dec(p, "", nil, nil, v); err != nil { + return err + } + return nil +} + +func dec(p *Properties, key string, def *string, opts map[string]string, v reflect.Value) error { + t := v.Type() + + // value returns the property value for key or the default if provided. + value := func() (string, error) { + if val, ok := p.Get(key); ok { + return val, nil + } + if def != nil { + return *def, nil + } + return "", fmt.Errorf("missing required key %s", key) + } + + // conv converts a string to a value of the given type. + conv := func(s string, t reflect.Type) (val reflect.Value, err error) { + var v interface{} + + switch { + case isDuration(t): + v, err = time.ParseDuration(s) + + case isTime(t): + layout := opts["layout"] + if layout == "" { + layout = time.RFC3339 + } + v, err = time.Parse(layout, s) + + case isBool(t): + v, err = boolVal(s), nil + + case isString(t): + v, err = s, nil + + case isFloat(t): + v, err = strconv.ParseFloat(s, 64) + + case isInt(t): + v, err = strconv.ParseInt(s, 10, 64) + + case isUint(t): + v, err = strconv.ParseUint(s, 10, 64) + + default: + return reflect.Zero(t), fmt.Errorf("unsupported type %s", t) + } + if err != nil { + return reflect.Zero(t), err + } + return reflect.ValueOf(v).Convert(t), nil + } + + // keydef returns the property key and the default value based on the + // name of the struct field and the options in the tag. + keydef := func(f reflect.StructField) (string, *string, map[string]string) { + _key, _opts := parseTag(f.Tag.Get("properties")) + + var _def *string + if d, ok := _opts["default"]; ok { + _def = &d + } + if _key != "" { + return _key, _def, _opts + } + return f.Name, _def, _opts + } + + switch { + case isDuration(t) || isTime(t) || isBool(t) || isString(t) || isFloat(t) || isInt(t) || isUint(t): + s, err := value() + if err != nil { + return err + } + val, err := conv(s, t) + if err != nil { + return err + } + v.Set(val) + + case isPtr(t): + return dec(p, key, def, opts, v.Elem()) + + case isStruct(t): + for i := 0; i < v.NumField(); i++ { + fv := v.Field(i) + fk, def, opts := keydef(t.Field(i)) + if !fv.CanSet() { + return fmt.Errorf("cannot set %s", t.Field(i).Name) + } + if fk == "-" { + continue + } + if key != "" { + fk = key + "." + fk + } + if err := dec(p, fk, def, opts, fv); err != nil { + return err + } + } + return nil + + case isArray(t): + val, err := value() + if err != nil { + return err + } + vals := split(val, ";") + a := reflect.MakeSlice(t, 0, len(vals)) + for _, s := range vals { + val, err := conv(s, t.Elem()) + if err != nil { + return err + } + a = reflect.Append(a, val) + } + v.Set(a) + + case isMap(t): + valT := t.Elem() + m := reflect.MakeMap(t) + for postfix := range p.FilterStripPrefix(key + ".").m { + pp := strings.SplitN(postfix, ".", 2) + mk, mv := pp[0], reflect.New(valT) + if err := dec(p, key+"."+mk, nil, nil, mv); err != nil { + return err + } + m.SetMapIndex(reflect.ValueOf(mk), mv.Elem()) + } + v.Set(m) + + default: + return fmt.Errorf("unsupported type %s", t) + } + return nil +} + +// split splits a string on sep, trims whitespace of elements +// and omits empty elements +func split(s string, sep string) []string { + var a []string + for _, v := range strings.Split(s, sep) { + if v = strings.TrimSpace(v); v != "" { + a = append(a, v) + } + } + return a +} + +// parseTag parses a "key,k=v,k=v,..." +func parseTag(tag string) (key string, opts map[string]string) { + opts = map[string]string{} + for i, s := range strings.Split(tag, ",") { + if i == 0 { + key = s + continue + } + + pp := strings.SplitN(s, "=", 2) + if len(pp) == 1 { + opts[pp[0]] = "" + } else { + opts[pp[0]] = pp[1] + } + } + return key, opts +} + +func isArray(t reflect.Type) bool { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice } +func isBool(t reflect.Type) bool { return t.Kind() == reflect.Bool } +func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) } +func isMap(t reflect.Type) bool { return t.Kind() == reflect.Map } +func isPtr(t reflect.Type) bool { return t.Kind() == reflect.Ptr } +func isString(t reflect.Type) bool { return t.Kind() == reflect.String } +func isStruct(t reflect.Type) bool { return t.Kind() == reflect.Struct } +func isTime(t reflect.Type) bool { return t == reflect.TypeOf(time.Time{}) } +func isFloat(t reflect.Type) bool { + return t.Kind() == reflect.Float32 || t.Kind() == reflect.Float64 +} +func isInt(t reflect.Type) bool { + return t.Kind() == reflect.Int || t.Kind() == reflect.Int8 || t.Kind() == reflect.Int16 || t.Kind() == reflect.Int32 || t.Kind() == reflect.Int64 +} +func isUint(t reflect.Type) bool { + return t.Kind() == reflect.Uint || t.Kind() == reflect.Uint8 || t.Kind() == reflect.Uint16 || t.Kind() == reflect.Uint32 || t.Kind() == reflect.Uint64 +} diff --git a/vendor/github.com/magiconair/properties/doc.go b/vendor/github.com/magiconair/properties/doc.go new file mode 100644 index 0000000..f8822da --- /dev/null +++ b/vendor/github.com/magiconair/properties/doc.go @@ -0,0 +1,156 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package properties provides functions for reading and writing +// ISO-8859-1 and UTF-8 encoded .properties files and has +// support for recursive property expansion. +// +// Java properties files are ISO-8859-1 encoded and use Unicode +// literals for characters outside the ISO character set. Unicode +// literals can be used in UTF-8 encoded properties files but +// aren't necessary. +// +// To load a single properties file use MustLoadFile(): +// +// p := properties.MustLoadFile(filename, properties.UTF8) +// +// To load multiple properties files use MustLoadFiles() +// which loads the files in the given order and merges the +// result. Missing properties files can be ignored if the +// 'ignoreMissing' flag is set to true. +// +// Filenames can contain environment variables which are expanded +// before loading. +// +// f1 := "/etc/myapp/myapp.conf" +// f2 := "/home/${USER}/myapp.conf" +// p := MustLoadFiles([]string{f1, f2}, properties.UTF8, true) +// +// All of the different key/value delimiters ' ', ':' and '=' are +// supported as well as the comment characters '!' and '#' and +// multi-line values. +// +// ! this is a comment +// # and so is this +// +// # the following expressions are equal +// key value +// key=value +// key:value +// key = value +// key : value +// key = val\ +// ue +// +// Properties stores all comments preceding a key and provides +// GetComments() and SetComments() methods to retrieve and +// update them. The convenience functions GetComment() and +// SetComment() allow access to the last comment. The +// WriteComment() method writes properties files including +// the comments and with the keys in the original order. +// This can be used for sanitizing properties files. +// +// Property expansion is recursive and circular references +// and malformed expressions are not allowed and cause an +// error. Expansion of environment variables is supported. +// +// # standard property +// key = value +// +// # property expansion: key2 = value +// key2 = ${key} +// +// # recursive expansion: key3 = value +// key3 = ${key2} +// +// # circular reference (error) +// key = ${key} +// +// # malformed expression (error) +// key = ${ke +// +// # refers to the users' home dir +// home = ${HOME} +// +// # local key takes precedence over env var: u = foo +// USER = foo +// u = ${USER} +// +// The default property expansion format is ${key} but can be +// changed by setting different pre- and postfix values on the +// Properties object. +// +// p := properties.NewProperties() +// p.Prefix = "#[" +// p.Postfix = "]#" +// +// Properties provides convenience functions for getting typed +// values with default values if the key does not exist or the +// type conversion failed. +// +// # Returns true if the value is either "1", "on", "yes" or "true" +// # Returns false for every other value and the default value if +// # the key does not exist. +// v = p.GetBool("key", false) +// +// # Returns the value if the key exists and the format conversion +// # was successful. Otherwise, the default value is returned. +// v = p.GetInt64("key", 999) +// v = p.GetUint64("key", 999) +// v = p.GetFloat64("key", 123.0) +// v = p.GetString("key", "def") +// v = p.GetDuration("key", 999) +// +// As an alternative properties may be applied with the standard +// library's flag implementation at any time. +// +// # Standard configuration +// v = flag.Int("key", 999, "help message") +// flag.Parse() +// +// # Merge p into the flag set +// p.MustFlag(flag.CommandLine) +// +// Properties provides several MustXXX() convenience functions +// which will terminate the app if an error occurs. The behavior +// of the failure is configurable and the default is to call +// log.Fatal(err). To have the MustXXX() functions panic instead +// of logging the error set a different ErrorHandler before +// you use the Properties package. +// +// properties.ErrorHandler = properties.PanicHandler +// +// # Will panic instead of logging an error +// p := properties.MustLoadFile("config.properties") +// +// You can also provide your own ErrorHandler function. The only requirement +// is that the error handler function must exit after handling the error. +// +// properties.ErrorHandler = func(err error) { +// fmt.Println(err) +// os.Exit(1) +// } +// +// # Will write to stdout and then exit +// p := properties.MustLoadFile("config.properties") +// +// Properties can also be loaded into a struct via the `Decode` +// method, e.g. +// +// type S struct { +// A string `properties:"a,default=foo"` +// D time.Duration `properties:"timeout,default=5s"` +// E time.Time `properties:"expires,layout=2006-01-02,default=2015-01-01"` +// } +// +// See `Decode()` method for the full documentation. +// +// The following documents provide a description of the properties +// file format. +// +// http://en.wikipedia.org/wiki/.properties +// +// http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29 +// +package properties diff --git a/vendor/github.com/magiconair/properties/go.mod b/vendor/github.com/magiconair/properties/go.mod new file mode 100644 index 0000000..02a6f86 --- /dev/null +++ b/vendor/github.com/magiconair/properties/go.mod @@ -0,0 +1 @@ +module github.com/magiconair/properties diff --git a/vendor/github.com/magiconair/properties/integrate.go b/vendor/github.com/magiconair/properties/integrate.go new file mode 100644 index 0000000..74d38dc --- /dev/null +++ b/vendor/github.com/magiconair/properties/integrate.go @@ -0,0 +1,34 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +import "flag" + +// MustFlag sets flags that are skipped by dst.Parse when p contains +// the respective key for flag.Flag.Name. +// +// It's use is recommended with command line arguments as in: +// flag.Parse() +// p.MustFlag(flag.CommandLine) +func (p *Properties) MustFlag(dst *flag.FlagSet) { + m := make(map[string]*flag.Flag) + dst.VisitAll(func(f *flag.Flag) { + m[f.Name] = f + }) + dst.Visit(func(f *flag.Flag) { + delete(m, f.Name) // overridden + }) + + for name, f := range m { + v, ok := p.Get(name) + if !ok { + continue + } + + if err := f.Value.Set(v); err != nil { + ErrorHandler(err) + } + } +} diff --git a/vendor/github.com/magiconair/properties/lex.go b/vendor/github.com/magiconair/properties/lex.go new file mode 100644 index 0000000..367166d --- /dev/null +++ b/vendor/github.com/magiconair/properties/lex.go @@ -0,0 +1,407 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +// Parts of the lexer are from the template/text/parser package +// For these parts the following applies: +// +// Copyright 2011 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 of the go 1.2 +// distribution. + +package properties + +import ( + "fmt" + "strconv" + "strings" + "unicode/utf8" +) + +// item represents a token or text string returned from the scanner. +type item struct { + typ itemType // The type of this item. + pos int // The starting position, in bytes, of this item in the input string. + val string // The value of this item. +} + +func (i item) String() string { + switch { + case i.typ == itemEOF: + return "EOF" + case i.typ == itemError: + return i.val + case len(i.val) > 10: + return fmt.Sprintf("%.10q...", i.val) + } + return fmt.Sprintf("%q", i.val) +} + +// itemType identifies the type of lex items. +type itemType int + +const ( + itemError itemType = iota // error occurred; value is text of error + itemEOF + itemKey // a key + itemValue // a value + itemComment // a comment +) + +// defines a constant for EOF +const eof = -1 + +// permitted whitespace characters space, FF and TAB +const whitespace = " \f\t" + +// stateFn represents the state of the scanner as a function that returns the next state. +type stateFn func(*lexer) stateFn + +// lexer holds the state of the scanner. +type lexer struct { + input string // the string being scanned + state stateFn // the next lexing function to enter + pos int // current position in the input + start int // start position of this item + width int // width of last rune read from input + lastPos int // position of most recent item returned by nextItem + runes []rune // scanned runes for this item + items chan item // channel of scanned items +} + +// next returns the next rune in the input. +func (l *lexer) next() rune { + if l.pos >= len(l.input) { + l.width = 0 + return eof + } + r, w := utf8.DecodeRuneInString(l.input[l.pos:]) + l.width = w + l.pos += l.width + return r +} + +// peek returns but does not consume the next rune in the input. +func (l *lexer) peek() rune { + r := l.next() + l.backup() + return r +} + +// backup steps back one rune. Can only be called once per call of next. +func (l *lexer) backup() { + l.pos -= l.width +} + +// emit passes an item back to the client. +func (l *lexer) emit(t itemType) { + i := item{t, l.start, string(l.runes)} + l.items <- i + l.start = l.pos + l.runes = l.runes[:0] +} + +// ignore skips over the pending input before this point. +func (l *lexer) ignore() { + l.start = l.pos +} + +// appends the rune to the current value +func (l *lexer) appendRune(r rune) { + l.runes = append(l.runes, r) +} + +// accept consumes the next rune if it's from the valid set. +func (l *lexer) accept(valid string) bool { + if strings.ContainsRune(valid, l.next()) { + return true + } + l.backup() + return false +} + +// acceptRun consumes a run of runes from the valid set. +func (l *lexer) acceptRun(valid string) { + for strings.ContainsRune(valid, l.next()) { + } + l.backup() +} + +// acceptRunUntil consumes a run of runes up to a terminator. +func (l *lexer) acceptRunUntil(term rune) { + for term != l.next() { + } + l.backup() +} + +// hasText returns true if the current parsed text is not empty. +func (l *lexer) isNotEmpty() bool { + return l.pos > l.start +} + +// lineNumber reports which line we're on, based on the position of +// the previous item returned by nextItem. Doing it this way +// means we don't have to worry about peek double counting. +func (l *lexer) lineNumber() int { + return 1 + strings.Count(l.input[:l.lastPos], "\n") +} + +// errorf returns an error token and terminates the scan by passing +// back a nil pointer that will be the next state, terminating l.nextItem. +func (l *lexer) errorf(format string, args ...interface{}) stateFn { + l.items <- item{itemError, l.start, fmt.Sprintf(format, args...)} + return nil +} + +// nextItem returns the next item from the input. +func (l *lexer) nextItem() item { + i := <-l.items + l.lastPos = i.pos + return i +} + +// lex creates a new scanner for the input string. +func lex(input string) *lexer { + l := &lexer{ + input: input, + items: make(chan item), + runes: make([]rune, 0, 32), + } + go l.run() + return l +} + +// run runs the state machine for the lexer. +func (l *lexer) run() { + for l.state = lexBeforeKey(l); l.state != nil; { + l.state = l.state(l) + } +} + +// state functions + +// lexBeforeKey scans until a key begins. +func lexBeforeKey(l *lexer) stateFn { + switch r := l.next(); { + case isEOF(r): + l.emit(itemEOF) + return nil + + case isEOL(r): + l.ignore() + return lexBeforeKey + + case isComment(r): + return lexComment + + case isWhitespace(r): + l.ignore() + return lexBeforeKey + + default: + l.backup() + return lexKey + } +} + +// lexComment scans a comment line. The comment character has already been scanned. +func lexComment(l *lexer) stateFn { + l.acceptRun(whitespace) + l.ignore() + for { + switch r := l.next(); { + case isEOF(r): + l.ignore() + l.emit(itemEOF) + return nil + case isEOL(r): + l.emit(itemComment) + return lexBeforeKey + default: + l.appendRune(r) + } + } +} + +// lexKey scans the key up to a delimiter +func lexKey(l *lexer) stateFn { + var r rune + +Loop: + for { + switch r = l.next(); { + + case isEscape(r): + err := l.scanEscapeSequence() + if err != nil { + return l.errorf(err.Error()) + } + + case isEndOfKey(r): + l.backup() + break Loop + + case isEOF(r): + break Loop + + default: + l.appendRune(r) + } + } + + if len(l.runes) > 0 { + l.emit(itemKey) + } + + if isEOF(r) { + l.emit(itemEOF) + return nil + } + + return lexBeforeValue +} + +// lexBeforeValue scans the delimiter between key and value. +// Leading and trailing whitespace is ignored. +// We expect to be just after the key. +func lexBeforeValue(l *lexer) stateFn { + l.acceptRun(whitespace) + l.accept(":=") + l.acceptRun(whitespace) + l.ignore() + return lexValue +} + +// lexValue scans text until the end of the line. We expect to be just after the delimiter. +func lexValue(l *lexer) stateFn { + for { + switch r := l.next(); { + case isEscape(r): + if isEOL(l.peek()) { + l.next() + l.acceptRun(whitespace) + } else { + err := l.scanEscapeSequence() + if err != nil { + return l.errorf(err.Error()) + } + } + + case isEOL(r): + l.emit(itemValue) + l.ignore() + return lexBeforeKey + + case isEOF(r): + l.emit(itemValue) + l.emit(itemEOF) + return nil + + default: + l.appendRune(r) + } + } +} + +// scanEscapeSequence scans either one of the escaped characters +// or a unicode literal. We expect to be after the escape character. +func (l *lexer) scanEscapeSequence() error { + switch r := l.next(); { + + case isEscapedCharacter(r): + l.appendRune(decodeEscapedCharacter(r)) + return nil + + case atUnicodeLiteral(r): + return l.scanUnicodeLiteral() + + case isEOF(r): + return fmt.Errorf("premature EOF") + + // silently drop the escape character and append the rune as is + default: + l.appendRune(r) + return nil + } +} + +// scans a unicode literal in the form \uXXXX. We expect to be after the \u. +func (l *lexer) scanUnicodeLiteral() error { + // scan the digits + d := make([]rune, 4) + for i := 0; i < 4; i++ { + d[i] = l.next() + if d[i] == eof || !strings.ContainsRune("0123456789abcdefABCDEF", d[i]) { + return fmt.Errorf("invalid unicode literal") + } + } + + // decode the digits into a rune + r, err := strconv.ParseInt(string(d), 16, 0) + if err != nil { + return err + } + + l.appendRune(rune(r)) + return nil +} + +// decodeEscapedCharacter returns the unescaped rune. We expect to be after the escape character. +func decodeEscapedCharacter(r rune) rune { + switch r { + case 'f': + return '\f' + case 'n': + return '\n' + case 'r': + return '\r' + case 't': + return '\t' + default: + return r + } +} + +// atUnicodeLiteral reports whether we are at a unicode literal. +// The escape character has already been consumed. +func atUnicodeLiteral(r rune) bool { + return r == 'u' +} + +// isComment reports whether we are at the start of a comment. +func isComment(r rune) bool { + return r == '#' || r == '!' +} + +// isEndOfKey reports whether the rune terminates the current key. +func isEndOfKey(r rune) bool { + return strings.ContainsRune(" \f\t\r\n:=", r) +} + +// isEOF reports whether we are at EOF. +func isEOF(r rune) bool { + return r == eof +} + +// isEOL reports whether we are at a new line character. +func isEOL(r rune) bool { + return r == '\n' || r == '\r' +} + +// isEscape reports whether the rune is the escape character which +// prefixes unicode literals and other escaped characters. +func isEscape(r rune) bool { + return r == '\\' +} + +// isEscapedCharacter reports whether we are at one of the characters that need escaping. +// The escape character has already been consumed. +func isEscapedCharacter(r rune) bool { + return strings.ContainsRune(" :=fnrt", r) +} + +// isWhitespace reports whether the rune is a whitespace character. +func isWhitespace(r rune) bool { + return strings.ContainsRune(whitespace, r) +} diff --git a/vendor/github.com/magiconair/properties/load.go b/vendor/github.com/magiconair/properties/load.go new file mode 100644 index 0000000..ab95325 --- /dev/null +++ b/vendor/github.com/magiconair/properties/load.go @@ -0,0 +1,292 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +import ( + "fmt" + "io/ioutil" + "net/http" + "os" + "strings" +) + +// Encoding specifies encoding of the input data. +type Encoding uint + +const ( + // utf8Default is a private placeholder for the zero value of Encoding to + // ensure that it has the correct meaning. UTF8 is the default encoding but + // was assigned a non-zero value which cannot be changed without breaking + // existing code. Clients should continue to use the public constants. + utf8Default Encoding = iota + + // UTF8 interprets the input data as UTF-8. + UTF8 + + // ISO_8859_1 interprets the input data as ISO-8859-1. + ISO_8859_1 +) + +type Loader struct { + // Encoding determines how the data from files and byte buffers + // is interpreted. For URLs the Content-Type header is used + // to determine the encoding of the data. + Encoding Encoding + + // DisableExpansion configures the property expansion of the + // returned property object. When set to true, the property values + // will not be expanded and the Property object will not be checked + // for invalid expansion expressions. + DisableExpansion bool + + // IgnoreMissing configures whether missing files or URLs which return + // 404 are reported as errors. When set to true, missing files and 404 + // status codes are not reported as errors. + IgnoreMissing bool +} + +// Load reads a buffer into a Properties struct. +func (l *Loader) LoadBytes(buf []byte) (*Properties, error) { + return l.loadBytes(buf, l.Encoding) +} + +// LoadAll reads the content of multiple URLs or files in the given order into +// a Properties struct. If IgnoreMissing is true then a 404 status code or +// missing file will not be reported as error. Encoding sets the encoding for +// files. For the URLs see LoadURL for the Content-Type header and the +// encoding. +func (l *Loader) LoadAll(names []string) (*Properties, error) { + all := NewProperties() + for _, name := range names { + n, err := expandName(name) + if err != nil { + return nil, err + } + + var p *Properties + switch { + case strings.HasPrefix(n, "http://"): + p, err = l.LoadURL(n) + case strings.HasPrefix(n, "https://"): + p, err = l.LoadURL(n) + default: + p, err = l.LoadFile(n) + } + if err != nil { + return nil, err + } + all.Merge(p) + } + + all.DisableExpansion = l.DisableExpansion + if all.DisableExpansion { + return all, nil + } + return all, all.check() +} + +// LoadFile reads a file into a Properties struct. +// If IgnoreMissing is true then a missing file will not be +// reported as error. +func (l *Loader) LoadFile(filename string) (*Properties, error) { + data, err := ioutil.ReadFile(filename) + if err != nil { + if l.IgnoreMissing && os.IsNotExist(err) { + LogPrintf("properties: %s not found. skipping", filename) + return NewProperties(), nil + } + return nil, err + } + return l.loadBytes(data, l.Encoding) +} + +// LoadURL reads the content of the URL into a Properties struct. +// +// The encoding is determined via the Content-Type header which +// should be set to 'text/plain'. If the 'charset' parameter is +// missing, 'iso-8859-1' or 'latin1' the encoding is set to +// ISO-8859-1. If the 'charset' parameter is set to 'utf-8' the +// encoding is set to UTF-8. A missing content type header is +// interpreted as 'text/plain; charset=utf-8'. +func (l *Loader) LoadURL(url string) (*Properties, error) { + resp, err := http.Get(url) + if err != nil { + return nil, fmt.Errorf("properties: error fetching %q. %s", url, err) + } + defer resp.Body.Close() + + if resp.StatusCode == 404 && l.IgnoreMissing { + LogPrintf("properties: %s returned %d. skipping", url, resp.StatusCode) + return NewProperties(), nil + } + + if resp.StatusCode != 200 { + return nil, fmt.Errorf("properties: %s returned %d", url, resp.StatusCode) + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("properties: %s error reading response. %s", url, err) + } + + ct := resp.Header.Get("Content-Type") + var enc Encoding + switch strings.ToLower(ct) { + case "text/plain", "text/plain; charset=iso-8859-1", "text/plain; charset=latin1": + enc = ISO_8859_1 + case "", "text/plain; charset=utf-8": + enc = UTF8 + default: + return nil, fmt.Errorf("properties: invalid content type %s", ct) + } + + return l.loadBytes(body, enc) +} + +func (l *Loader) loadBytes(buf []byte, enc Encoding) (*Properties, error) { + p, err := parse(convert(buf, enc)) + if err != nil { + return nil, err + } + p.DisableExpansion = l.DisableExpansion + if p.DisableExpansion { + return p, nil + } + return p, p.check() +} + +// Load reads a buffer into a Properties struct. +func Load(buf []byte, enc Encoding) (*Properties, error) { + l := &Loader{Encoding: enc} + return l.LoadBytes(buf) +} + +// LoadString reads an UTF8 string into a properties struct. +func LoadString(s string) (*Properties, error) { + l := &Loader{Encoding: UTF8} + return l.LoadBytes([]byte(s)) +} + +// LoadMap creates a new Properties struct from a string map. +func LoadMap(m map[string]string) *Properties { + p := NewProperties() + for k, v := range m { + p.Set(k, v) + } + return p +} + +// LoadFile reads a file into a Properties struct. +func LoadFile(filename string, enc Encoding) (*Properties, error) { + l := &Loader{Encoding: enc} + return l.LoadAll([]string{filename}) +} + +// LoadFiles reads multiple files in the given order into +// a Properties struct. If 'ignoreMissing' is true then +// non-existent files will not be reported as error. +func LoadFiles(filenames []string, enc Encoding, ignoreMissing bool) (*Properties, error) { + l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing} + return l.LoadAll(filenames) +} + +// LoadURL reads the content of the URL into a Properties struct. +// See Loader#LoadURL for details. +func LoadURL(url string) (*Properties, error) { + l := &Loader{Encoding: UTF8} + return l.LoadAll([]string{url}) +} + +// LoadURLs reads the content of multiple URLs in the given order into a +// Properties struct. If IgnoreMissing is true then a 404 status code will +// not be reported as error. See Loader#LoadURL for the Content-Type header +// and the encoding. +func LoadURLs(urls []string, ignoreMissing bool) (*Properties, error) { + l := &Loader{Encoding: UTF8, IgnoreMissing: ignoreMissing} + return l.LoadAll(urls) +} + +// LoadAll reads the content of multiple URLs or files in the given order into a +// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will +// not be reported as error. Encoding sets the encoding for files. For the URLs please see +// LoadURL for the Content-Type header and the encoding. +func LoadAll(names []string, enc Encoding, ignoreMissing bool) (*Properties, error) { + l := &Loader{Encoding: enc, IgnoreMissing: ignoreMissing} + return l.LoadAll(names) +} + +// MustLoadString reads an UTF8 string into a Properties struct and +// panics on error. +func MustLoadString(s string) *Properties { + return must(LoadString(s)) +} + +// MustLoadFile reads a file into a Properties struct and +// panics on error. +func MustLoadFile(filename string, enc Encoding) *Properties { + return must(LoadFile(filename, enc)) +} + +// MustLoadFiles reads multiple files in the given order into +// a Properties struct and panics on error. If 'ignoreMissing' +// is true then non-existent files will not be reported as error. +func MustLoadFiles(filenames []string, enc Encoding, ignoreMissing bool) *Properties { + return must(LoadFiles(filenames, enc, ignoreMissing)) +} + +// MustLoadURL reads the content of a URL into a Properties struct and +// panics on error. +func MustLoadURL(url string) *Properties { + return must(LoadURL(url)) +} + +// MustLoadURLs reads the content of multiple URLs in the given order into a +// Properties struct and panics on error. If 'ignoreMissing' is true then a 404 +// status code will not be reported as error. +func MustLoadURLs(urls []string, ignoreMissing bool) *Properties { + return must(LoadURLs(urls, ignoreMissing)) +} + +// MustLoadAll reads the content of multiple URLs or files in the given order into a +// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will +// not be reported as error. Encoding sets the encoding for files. For the URLs please see +// LoadURL for the Content-Type header and the encoding. It panics on error. +func MustLoadAll(names []string, enc Encoding, ignoreMissing bool) *Properties { + return must(LoadAll(names, enc, ignoreMissing)) +} + +func must(p *Properties, err error) *Properties { + if err != nil { + ErrorHandler(err) + } + return p +} + +// expandName expands ${ENV_VAR} expressions in a name. +// If the environment variable does not exist then it will be replaced +// with an empty string. Malformed expressions like "${ENV_VAR" will +// be reported as error. +func expandName(name string) (string, error) { + return expand(name, []string{}, "${", "}", make(map[string]string)) +} + +// Interprets a byte buffer either as an ISO-8859-1 or UTF-8 encoded string. +// For ISO-8859-1 we can convert each byte straight into a rune since the +// first 256 unicode code points cover ISO-8859-1. +func convert(buf []byte, enc Encoding) string { + switch enc { + case utf8Default, UTF8: + return string(buf) + case ISO_8859_1: + runes := make([]rune, len(buf)) + for i, b := range buf { + runes[i] = rune(b) + } + return string(runes) + default: + ErrorHandler(fmt.Errorf("unsupported encoding %v", enc)) + } + panic("ErrorHandler should exit") +} diff --git a/vendor/github.com/magiconair/properties/parser.go b/vendor/github.com/magiconair/properties/parser.go new file mode 100644 index 0000000..cdc4a80 --- /dev/null +++ b/vendor/github.com/magiconair/properties/parser.go @@ -0,0 +1,95 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +import ( + "fmt" + "runtime" +) + +type parser struct { + lex *lexer +} + +func parse(input string) (properties *Properties, err error) { + p := &parser{lex: lex(input)} + defer p.recover(&err) + + properties = NewProperties() + key := "" + comments := []string{} + + for { + token := p.expectOneOf(itemComment, itemKey, itemEOF) + switch token.typ { + case itemEOF: + goto done + case itemComment: + comments = append(comments, token.val) + continue + case itemKey: + key = token.val + if _, ok := properties.m[key]; !ok { + properties.k = append(properties.k, key) + } + } + + token = p.expectOneOf(itemValue, itemEOF) + if len(comments) > 0 { + properties.c[key] = comments + comments = []string{} + } + switch token.typ { + case itemEOF: + properties.m[key] = "" + goto done + case itemValue: + properties.m[key] = token.val + } + } + +done: + return properties, nil +} + +func (p *parser) errorf(format string, args ...interface{}) { + format = fmt.Sprintf("properties: Line %d: %s", p.lex.lineNumber(), format) + panic(fmt.Errorf(format, args...)) +} + +func (p *parser) expect(expected itemType) (token item) { + token = p.lex.nextItem() + if token.typ != expected { + p.unexpected(token) + } + return token +} + +func (p *parser) expectOneOf(expected ...itemType) (token item) { + token = p.lex.nextItem() + for _, v := range expected { + if token.typ == v { + return token + } + } + p.unexpected(token) + panic("unexpected token") +} + +func (p *parser) unexpected(token item) { + p.errorf(token.String()) +} + +// recover is the handler that turns panics into returns from the top level of Parse. +func (p *parser) recover(errp *error) { + e := recover() + if e != nil { + if _, ok := e.(runtime.Error); ok { + panic(e) + } + *errp = e.(error) + } + return +} diff --git a/vendor/github.com/magiconair/properties/properties.go b/vendor/github.com/magiconair/properties/properties.go new file mode 100644 index 0000000..cb3d1a3 --- /dev/null +++ b/vendor/github.com/magiconair/properties/properties.go @@ -0,0 +1,833 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +// BUG(frank): Set() does not check for invalid unicode literals since this is currently handled by the lexer. +// BUG(frank): Write() does not allow to configure the newline character. Therefore, on Windows LF is used. + +import ( + "fmt" + "io" + "log" + "os" + "regexp" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +const maxExpansionDepth = 64 + +// ErrorHandlerFunc defines the type of function which handles failures +// of the MustXXX() functions. An error handler function must exit +// the application after handling the error. +type ErrorHandlerFunc func(error) + +// ErrorHandler is the function which handles failures of the MustXXX() +// functions. The default is LogFatalHandler. +var ErrorHandler ErrorHandlerFunc = LogFatalHandler + +// LogHandlerFunc defines the function prototype for logging errors. +type LogHandlerFunc func(fmt string, args ...interface{}) + +// LogPrintf defines a log handler which uses log.Printf. +var LogPrintf LogHandlerFunc = log.Printf + +// LogFatalHandler handles the error by logging a fatal error and exiting. +func LogFatalHandler(err error) { + log.Fatal(err) +} + +// PanicHandler handles the error by panicking. +func PanicHandler(err error) { + panic(err) +} + +// ----------------------------------------------------------------------------- + +// A Properties contains the key/value pairs from the properties input. +// All values are stored in unexpanded form and are expanded at runtime +type Properties struct { + // Pre-/Postfix for property expansion. + Prefix string + Postfix string + + // DisableExpansion controls the expansion of properties on Get() + // and the check for circular references on Set(). When set to + // true Properties behaves like a simple key/value store and does + // not check for circular references on Get() or on Set(). + DisableExpansion bool + + // Stores the key/value pairs + m map[string]string + + // Stores the comments per key. + c map[string][]string + + // Stores the keys in order of appearance. + k []string +} + +// NewProperties creates a new Properties struct with the default +// configuration for "${key}" expressions. +func NewProperties() *Properties { + return &Properties{ + Prefix: "${", + Postfix: "}", + m: map[string]string{}, + c: map[string][]string{}, + k: []string{}, + } +} + +// Load reads a buffer into the given Properties struct. +func (p *Properties) Load(buf []byte, enc Encoding) error { + l := &Loader{Encoding: enc, DisableExpansion: p.DisableExpansion} + newProperties, err := l.LoadBytes(buf) + if err != nil { + return err + } + p.Merge(newProperties) + return nil +} + +// Get returns the expanded value for the given key if exists. +// Otherwise, ok is false. +func (p *Properties) Get(key string) (value string, ok bool) { + v, ok := p.m[key] + if p.DisableExpansion { + return v, ok + } + if !ok { + return "", false + } + + expanded, err := p.expand(key, v) + + // we guarantee that the expanded value is free of + // circular references and malformed expressions + // so we panic if we still get an error here. + if err != nil { + ErrorHandler(fmt.Errorf("%s in %q", err, key+" = "+v)) + } + + return expanded, true +} + +// MustGet returns the expanded value for the given key if exists. +// Otherwise, it panics. +func (p *Properties) MustGet(key string) string { + if v, ok := p.Get(key); ok { + return v + } + ErrorHandler(invalidKeyError(key)) + panic("ErrorHandler should exit") +} + +// ---------------------------------------------------------------------------- + +// ClearComments removes the comments for all keys. +func (p *Properties) ClearComments() { + p.c = map[string][]string{} +} + +// ---------------------------------------------------------------------------- + +// GetComment returns the last comment before the given key or an empty string. +func (p *Properties) GetComment(key string) string { + comments, ok := p.c[key] + if !ok || len(comments) == 0 { + return "" + } + return comments[len(comments)-1] +} + +// ---------------------------------------------------------------------------- + +// GetComments returns all comments that appeared before the given key or nil. +func (p *Properties) GetComments(key string) []string { + if comments, ok := p.c[key]; ok { + return comments + } + return nil +} + +// ---------------------------------------------------------------------------- + +// SetComment sets the comment for the key. +func (p *Properties) SetComment(key, comment string) { + p.c[key] = []string{comment} +} + +// ---------------------------------------------------------------------------- + +// SetComments sets the comments for the key. If the comments are nil then +// all comments for this key are deleted. +func (p *Properties) SetComments(key string, comments []string) { + if comments == nil { + delete(p.c, key) + return + } + p.c[key] = comments +} + +// ---------------------------------------------------------------------------- + +// GetBool checks if the expanded value is one of '1', 'yes', +// 'true' or 'on' if the key exists. The comparison is case-insensitive. +// If the key does not exist the default value is returned. +func (p *Properties) GetBool(key string, def bool) bool { + v, err := p.getBool(key) + if err != nil { + return def + } + return v +} + +// MustGetBool checks if the expanded value is one of '1', 'yes', +// 'true' or 'on' if the key exists. The comparison is case-insensitive. +// If the key does not exist the function panics. +func (p *Properties) MustGetBool(key string) bool { + v, err := p.getBool(key) + if err != nil { + ErrorHandler(err) + } + return v +} + +func (p *Properties) getBool(key string) (value bool, err error) { + if v, ok := p.Get(key); ok { + return boolVal(v), nil + } + return false, invalidKeyError(key) +} + +func boolVal(v string) bool { + v = strings.ToLower(v) + return v == "1" || v == "true" || v == "yes" || v == "on" +} + +// ---------------------------------------------------------------------------- + +// GetDuration parses the expanded value as an time.Duration (in ns) if the +// key exists. If key does not exist or the value cannot be parsed the default +// value is returned. In almost all cases you want to use GetParsedDuration(). +func (p *Properties) GetDuration(key string, def time.Duration) time.Duration { + v, err := p.getInt64(key) + if err != nil { + return def + } + return time.Duration(v) +} + +// MustGetDuration parses the expanded value as an time.Duration (in ns) if +// the key exists. If key does not exist or the value cannot be parsed the +// function panics. In almost all cases you want to use MustGetParsedDuration(). +func (p *Properties) MustGetDuration(key string) time.Duration { + v, err := p.getInt64(key) + if err != nil { + ErrorHandler(err) + } + return time.Duration(v) +} + +// ---------------------------------------------------------------------------- + +// GetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. +func (p *Properties) GetParsedDuration(key string, def time.Duration) time.Duration { + s, ok := p.Get(key) + if !ok { + return def + } + v, err := time.ParseDuration(s) + if err != nil { + return def + } + return v +} + +// MustGetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +func (p *Properties) MustGetParsedDuration(key string) time.Duration { + s, ok := p.Get(key) + if !ok { + ErrorHandler(invalidKeyError(key)) + } + v, err := time.ParseDuration(s) + if err != nil { + ErrorHandler(err) + } + return v +} + +// ---------------------------------------------------------------------------- + +// GetFloat64 parses the expanded value as a float64 if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. +func (p *Properties) GetFloat64(key string, def float64) float64 { + v, err := p.getFloat64(key) + if err != nil { + return def + } + return v +} + +// MustGetFloat64 parses the expanded value as a float64 if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +func (p *Properties) MustGetFloat64(key string) float64 { + v, err := p.getFloat64(key) + if err != nil { + ErrorHandler(err) + } + return v +} + +func (p *Properties) getFloat64(key string) (value float64, err error) { + if v, ok := p.Get(key); ok { + value, err = strconv.ParseFloat(v, 64) + if err != nil { + return 0, err + } + return value, nil + } + return 0, invalidKeyError(key) +} + +// ---------------------------------------------------------------------------- + +// GetInt parses the expanded value as an int if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. If the value does not fit into an int the +// function panics with an out of range error. +func (p *Properties) GetInt(key string, def int) int { + v, err := p.getInt64(key) + if err != nil { + return def + } + return intRangeCheck(key, v) +} + +// MustGetInt parses the expanded value as an int if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +// If the value does not fit into an int the function panics with +// an out of range error. +func (p *Properties) MustGetInt(key string) int { + v, err := p.getInt64(key) + if err != nil { + ErrorHandler(err) + } + return intRangeCheck(key, v) +} + +// ---------------------------------------------------------------------------- + +// GetInt64 parses the expanded value as an int64 if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. +func (p *Properties) GetInt64(key string, def int64) int64 { + v, err := p.getInt64(key) + if err != nil { + return def + } + return v +} + +// MustGetInt64 parses the expanded value as an int if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +func (p *Properties) MustGetInt64(key string) int64 { + v, err := p.getInt64(key) + if err != nil { + ErrorHandler(err) + } + return v +} + +func (p *Properties) getInt64(key string) (value int64, err error) { + if v, ok := p.Get(key); ok { + value, err = strconv.ParseInt(v, 10, 64) + if err != nil { + return 0, err + } + return value, nil + } + return 0, invalidKeyError(key) +} + +// ---------------------------------------------------------------------------- + +// GetUint parses the expanded value as an uint if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. If the value does not fit into an int the +// function panics with an out of range error. +func (p *Properties) GetUint(key string, def uint) uint { + v, err := p.getUint64(key) + if err != nil { + return def + } + return uintRangeCheck(key, v) +} + +// MustGetUint parses the expanded value as an int if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +// If the value does not fit into an int the function panics with +// an out of range error. +func (p *Properties) MustGetUint(key string) uint { + v, err := p.getUint64(key) + if err != nil { + ErrorHandler(err) + } + return uintRangeCheck(key, v) +} + +// ---------------------------------------------------------------------------- + +// GetUint64 parses the expanded value as an uint64 if the key exists. +// If key does not exist or the value cannot be parsed the default +// value is returned. +func (p *Properties) GetUint64(key string, def uint64) uint64 { + v, err := p.getUint64(key) + if err != nil { + return def + } + return v +} + +// MustGetUint64 parses the expanded value as an int if the key exists. +// If key does not exist or the value cannot be parsed the function panics. +func (p *Properties) MustGetUint64(key string) uint64 { + v, err := p.getUint64(key) + if err != nil { + ErrorHandler(err) + } + return v +} + +func (p *Properties) getUint64(key string) (value uint64, err error) { + if v, ok := p.Get(key); ok { + value, err = strconv.ParseUint(v, 10, 64) + if err != nil { + return 0, err + } + return value, nil + } + return 0, invalidKeyError(key) +} + +// ---------------------------------------------------------------------------- + +// GetString returns the expanded value for the given key if exists or +// the default value otherwise. +func (p *Properties) GetString(key, def string) string { + if v, ok := p.Get(key); ok { + return v + } + return def +} + +// MustGetString returns the expanded value for the given key if exists or +// panics otherwise. +func (p *Properties) MustGetString(key string) string { + if v, ok := p.Get(key); ok { + return v + } + ErrorHandler(invalidKeyError(key)) + panic("ErrorHandler should exit") +} + +// ---------------------------------------------------------------------------- + +// Filter returns a new properties object which contains all properties +// for which the key matches the pattern. +func (p *Properties) Filter(pattern string) (*Properties, error) { + re, err := regexp.Compile(pattern) + if err != nil { + return nil, err + } + + return p.FilterRegexp(re), nil +} + +// FilterRegexp returns a new properties object which contains all properties +// for which the key matches the regular expression. +func (p *Properties) FilterRegexp(re *regexp.Regexp) *Properties { + pp := NewProperties() + for _, k := range p.k { + if re.MatchString(k) { + // TODO(fs): we are ignoring the error which flags a circular reference. + // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) + pp.Set(k, p.m[k]) + } + } + return pp +} + +// FilterPrefix returns a new properties object with a subset of all keys +// with the given prefix. +func (p *Properties) FilterPrefix(prefix string) *Properties { + pp := NewProperties() + for _, k := range p.k { + if strings.HasPrefix(k, prefix) { + // TODO(fs): we are ignoring the error which flags a circular reference. + // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) + pp.Set(k, p.m[k]) + } + } + return pp +} + +// FilterStripPrefix returns a new properties object with a subset of all keys +// with the given prefix and the prefix removed from the keys. +func (p *Properties) FilterStripPrefix(prefix string) *Properties { + pp := NewProperties() + n := len(prefix) + for _, k := range p.k { + if len(k) > len(prefix) && strings.HasPrefix(k, prefix) { + // TODO(fs): we are ignoring the error which flags a circular reference. + // TODO(fs): since we are modifying keys I am not entirely sure whether we can create a circular reference + // TODO(fs): this function should probably return an error but the signature is fixed + pp.Set(k[n:], p.m[k]) + } + } + return pp +} + +// Len returns the number of keys. +func (p *Properties) Len() int { + return len(p.m) +} + +// Keys returns all keys in the same order as in the input. +func (p *Properties) Keys() []string { + keys := make([]string, len(p.k)) + copy(keys, p.k) + return keys +} + +// Set sets the property key to the corresponding value. +// If a value for key existed before then ok is true and prev +// contains the previous value. If the value contains a +// circular reference or a malformed expression then +// an error is returned. +// An empty key is silently ignored. +func (p *Properties) Set(key, value string) (prev string, ok bool, err error) { + if key == "" { + return "", false, nil + } + + // if expansion is disabled we allow circular references + if p.DisableExpansion { + prev, ok = p.Get(key) + p.m[key] = value + if !ok { + p.k = append(p.k, key) + } + return prev, ok, nil + } + + // to check for a circular reference we temporarily need + // to set the new value. If there is an error then revert + // to the previous state. Only if all tests are successful + // then we add the key to the p.k list. + prev, ok = p.Get(key) + p.m[key] = value + + // now check for a circular reference + _, err = p.expand(key, value) + if err != nil { + + // revert to the previous state + if ok { + p.m[key] = prev + } else { + delete(p.m, key) + } + + return "", false, err + } + + if !ok { + p.k = append(p.k, key) + } + + return prev, ok, nil +} + +// SetValue sets property key to the default string value +// as defined by fmt.Sprintf("%v"). +func (p *Properties) SetValue(key string, value interface{}) error { + _, _, err := p.Set(key, fmt.Sprintf("%v", value)) + return err +} + +// MustSet sets the property key to the corresponding value. +// If a value for key existed before then ok is true and prev +// contains the previous value. An empty key is silently ignored. +func (p *Properties) MustSet(key, value string) (prev string, ok bool) { + prev, ok, err := p.Set(key, value) + if err != nil { + ErrorHandler(err) + } + return prev, ok +} + +// String returns a string of all expanded 'key = value' pairs. +func (p *Properties) String() string { + var s string + for _, key := range p.k { + value, _ := p.Get(key) + s = fmt.Sprintf("%s%s = %s\n", s, key, value) + } + return s +} + +// Write writes all unexpanded 'key = value' pairs to the given writer. +// Write returns the number of bytes written and any write error encountered. +func (p *Properties) Write(w io.Writer, enc Encoding) (n int, err error) { + return p.WriteComment(w, "", enc) +} + +// WriteComment writes all unexpanced 'key = value' pairs to the given writer. +// If prefix is not empty then comments are written with a blank line and the +// given prefix. The prefix should be either "# " or "! " to be compatible with +// the properties file format. Otherwise, the properties parser will not be +// able to read the file back in. It returns the number of bytes written and +// any write error encountered. +func (p *Properties) WriteComment(w io.Writer, prefix string, enc Encoding) (n int, err error) { + var x int + + for _, key := range p.k { + value := p.m[key] + + if prefix != "" { + if comments, ok := p.c[key]; ok { + // don't print comments if they are all empty + allEmpty := true + for _, c := range comments { + if c != "" { + allEmpty = false + break + } + } + + if !allEmpty { + // add a blank line between entries but not at the top + if len(comments) > 0 && n > 0 { + x, err = fmt.Fprintln(w) + if err != nil { + return + } + n += x + } + + for _, c := range comments { + x, err = fmt.Fprintf(w, "%s%s\n", prefix, encode(c, "", enc)) + if err != nil { + return + } + n += x + } + } + } + } + + x, err = fmt.Fprintf(w, "%s = %s\n", encode(key, " :", enc), encode(value, "", enc)) + if err != nil { + return + } + n += x + } + return +} + +// Map returns a copy of the properties as a map. +func (p *Properties) Map() map[string]string { + m := make(map[string]string) + for k, v := range p.m { + m[k] = v + } + return m +} + +// FilterFunc returns a copy of the properties which includes the values which passed all filters. +func (p *Properties) FilterFunc(filters ...func(k, v string) bool) *Properties { + pp := NewProperties() +outer: + for k, v := range p.m { + for _, f := range filters { + if !f(k, v) { + continue outer + } + pp.Set(k, v) + } + } + return pp +} + +// ---------------------------------------------------------------------------- + +// Delete removes the key and its comments. +func (p *Properties) Delete(key string) { + delete(p.m, key) + delete(p.c, key) + newKeys := []string{} + for _, k := range p.k { + if k != key { + newKeys = append(newKeys, k) + } + } + p.k = newKeys +} + +// Merge merges properties, comments and keys from other *Properties into p +func (p *Properties) Merge(other *Properties) { + for k, v := range other.m { + p.m[k] = v + } + for k, v := range other.c { + p.c[k] = v + } + +outer: + for _, otherKey := range other.k { + for _, key := range p.k { + if otherKey == key { + continue outer + } + } + p.k = append(p.k, otherKey) + } +} + +// ---------------------------------------------------------------------------- + +// check expands all values and returns an error if a circular reference or +// a malformed expression was found. +func (p *Properties) check() error { + for key, value := range p.m { + if _, err := p.expand(key, value); err != nil { + return err + } + } + return nil +} + +func (p *Properties) expand(key, input string) (string, error) { + // no pre/postfix -> nothing to expand + if p.Prefix == "" && p.Postfix == "" { + return input, nil + } + + return expand(input, []string{key}, p.Prefix, p.Postfix, p.m) +} + +// expand recursively expands expressions of '(prefix)key(postfix)' to their corresponding values. +// The function keeps track of the keys that were already expanded and stops if it +// detects a circular reference or a malformed expression of the form '(prefix)key'. +func expand(s string, keys []string, prefix, postfix string, values map[string]string) (string, error) { + if len(keys) > maxExpansionDepth { + return "", fmt.Errorf("expansion too deep") + } + + for { + start := strings.Index(s, prefix) + if start == -1 { + return s, nil + } + + keyStart := start + len(prefix) + keyLen := strings.Index(s[keyStart:], postfix) + if keyLen == -1 { + return "", fmt.Errorf("malformed expression") + } + + end := keyStart + keyLen + len(postfix) - 1 + key := s[keyStart : keyStart+keyLen] + + // fmt.Printf("s:%q pp:%q start:%d end:%d keyStart:%d keyLen:%d key:%q\n", s, prefix + "..." + postfix, start, end, keyStart, keyLen, key) + + for _, k := range keys { + if key == k { + return "", fmt.Errorf("circular reference") + } + } + + val, ok := values[key] + if !ok { + val = os.Getenv(key) + } + new_val, err := expand(val, append(keys, key), prefix, postfix, values) + if err != nil { + return "", err + } + s = s[:start] + new_val + s[end+1:] + } + return s, nil +} + +// encode encodes a UTF-8 string to ISO-8859-1 and escapes some characters. +func encode(s string, special string, enc Encoding) string { + switch enc { + case UTF8: + return encodeUtf8(s, special) + case ISO_8859_1: + return encodeIso(s, special) + default: + panic(fmt.Sprintf("unsupported encoding %v", enc)) + } +} + +func encodeUtf8(s string, special string) string { + v := "" + for pos := 0; pos < len(s); { + r, w := utf8.DecodeRuneInString(s[pos:]) + pos += w + v += escape(r, special) + } + return v +} + +func encodeIso(s string, special string) string { + var r rune + var w int + var v string + for pos := 0; pos < len(s); { + switch r, w = utf8.DecodeRuneInString(s[pos:]); { + case r < 1<<8: // single byte rune -> escape special chars only + v += escape(r, special) + case r < 1<<16: // two byte rune -> unicode literal + v += fmt.Sprintf("\\u%04x", r) + default: // more than two bytes per rune -> can't encode + v += "?" + } + pos += w + } + return v +} + +func escape(r rune, special string) string { + switch r { + case '\f': + return "\\f" + case '\n': + return "\\n" + case '\r': + return "\\r" + case '\t': + return "\\t" + default: + if strings.ContainsRune(special, r) { + return "\\" + string(r) + } + return string(r) + } +} + +func invalidKeyError(key string) error { + return fmt.Errorf("unknown property: %s", key) +} diff --git a/vendor/github.com/magiconair/properties/rangecheck.go b/vendor/github.com/magiconair/properties/rangecheck.go new file mode 100644 index 0000000..b013a2e --- /dev/null +++ b/vendor/github.com/magiconair/properties/rangecheck.go @@ -0,0 +1,31 @@ +// Copyright 2018 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package properties + +import ( + "fmt" + "math" +) + +// make this a var to overwrite it in a test +var is32Bit = ^uint(0) == math.MaxUint32 + +// intRangeCheck checks if the value fits into the int type and +// panics if it does not. +func intRangeCheck(key string, v int64) int { + if is32Bit && (v < math.MinInt32 || v > math.MaxInt32) { + panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) + } + return int(v) +} + +// uintRangeCheck checks if the value fits into the uint type and +// panics if it does not. +func uintRangeCheck(key string, v uint64) uint { + if is32Bit && v > math.MaxUint32 { + panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) + } + return uint(v) +} diff --git a/vendor/github.com/mattn/go-pointer/LICENSE b/vendor/github.com/mattn/go-pointer/LICENSE new file mode 100644 index 0000000..5794edd --- /dev/null +++ b/vendor/github.com/mattn/go-pointer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Yasuhiro Matsumoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/mattn/go-pointer/README.md b/vendor/github.com/mattn/go-pointer/README.md new file mode 100644 index 0000000..c74eee2 --- /dev/null +++ b/vendor/github.com/mattn/go-pointer/README.md @@ -0,0 +1,29 @@ +# go-pointer + +Utility for cgo + +## Usage + +https://github.com/golang/proposal/blob/master/design/12416-cgo-pointers.md + +In go 1.6, cgo argument can't be passed Go pointer. + +``` +var s string +C.pass_pointer(pointer.Save(&s)) +v := *(pointer.Restore(C.get_from_pointer()).(*string)) +``` + +## Installation + +``` +go get github.com/mattn/go-pointer +``` + +## License + +MIT + +## Author + +Yasuhiro Matsumoto (a.k.a mattn) diff --git a/vendor/github.com/mattn/go-pointer/doc.go b/vendor/github.com/mattn/go-pointer/doc.go new file mode 100644 index 0000000..c27bd8c --- /dev/null +++ b/vendor/github.com/mattn/go-pointer/doc.go @@ -0,0 +1 @@ +package pointer diff --git a/vendor/github.com/mattn/go-pointer/pointer.go b/vendor/github.com/mattn/go-pointer/pointer.go new file mode 100644 index 0000000..08a9853 --- /dev/null +++ b/vendor/github.com/mattn/go-pointer/pointer.go @@ -0,0 +1,57 @@ +package pointer + +// #include +import "C" +import ( + "sync" + "unsafe" +) + +var ( + mutex sync.RWMutex + store = map[unsafe.Pointer]interface{}{} +) + +func Save(v interface{}) unsafe.Pointer { + if v == nil { + return nil + } + + // Generate real fake C pointer. + // This pointer will not store any data, but will bi used for indexing purposes. + // Since Go doest allow to cast dangling pointer to unsafe.Pointer, we do rally allocate one byte. + // Why we need indexing, because Go doest allow C code to store pointers to Go data. + var ptr unsafe.Pointer = C.malloc(C.size_t(1)) + if ptr == nil { + panic("can't allocate 'cgo-pointer hack index pointer': ptr == nil") + } + + mutex.Lock() + store[ptr] = v + mutex.Unlock() + + return ptr +} + +func Restore(ptr unsafe.Pointer) (v interface{}) { + if ptr == nil { + return nil + } + + mutex.RLock() + v = store[ptr] + mutex.RUnlock() + return +} + +func Unref(ptr unsafe.Pointer) { + if ptr == nil { + return + } + + mutex.Lock() + delete(store, ptr) + mutex.Unlock() + + C.free(ptr) +} diff --git a/vendor/github.com/mitchellh/mapstructure/.travis.yml b/vendor/github.com/mitchellh/mapstructure/.travis.yml new file mode 100644 index 0000000..1689c7d --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/.travis.yml @@ -0,0 +1,8 @@ +language: go + +go: + - "1.11.x" + - tip + +script: + - go test diff --git a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md new file mode 100644 index 0000000..3b3cb72 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md @@ -0,0 +1,21 @@ +## 1.1.2 + +* Fix error when decode hook decodes interface implementation into interface + type. [GH-140] + +## 1.1.1 + +* Fix panic that can happen in `decodePtr` + +## 1.1.0 + +* Added `StringToIPHookFunc` to convert `string` to `net.IP` and `net.IPNet` [GH-133] +* Support struct to struct decoding [GH-137] +* If source map value is nil, then destination map value is nil (instead of empty) +* If source slice value is nil, then destination slice value is nil (instead of empty) +* If source pointer is nil, then destination pointer is set to nil (instead of + allocated zero value of type) + +## 1.0.0 + +* Initial tagged stable release. diff --git a/vendor/github.com/mitchellh/mapstructure/LICENSE b/vendor/github.com/mitchellh/mapstructure/LICENSE new file mode 100644 index 0000000..f9c841a --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 Mitchell Hashimoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/mitchellh/mapstructure/README.md b/vendor/github.com/mitchellh/mapstructure/README.md new file mode 100644 index 0000000..0018dc7 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/README.md @@ -0,0 +1,46 @@ +# mapstructure [![Godoc](https://godoc.org/github.com/mitchellh/mapstructure?status.svg)](https://godoc.org/github.com/mitchellh/mapstructure) + +mapstructure is a Go library for decoding generic map values to structures +and vice versa, while providing helpful error handling. + +This library is most useful when decoding values from some data stream (JSON, +Gob, etc.) where you don't _quite_ know the structure of the underlying data +until you read a part of it. You can therefore read a `map[string]interface{}` +and use this library to decode it into the proper underlying native Go +structure. + +## Installation + +Standard `go get`: + +``` +$ go get github.com/mitchellh/mapstructure +``` + +## Usage & Example + +For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). + +The `Decode` function has examples associated with it there. + +## But Why?! + +Go offers fantastic standard libraries for decoding formats such as JSON. +The standard method is to have a struct pre-created, and populate that struct +from the bytes of the encoded format. This is great, but the problem is if +you have configuration or an encoding that changes slightly depending on +specific fields. For example, consider this JSON: + +```json +{ + "type": "person", + "name": "Mitchell" +} +``` + +Perhaps we can't populate a specific structure without first reading +the "type" field from the JSON. We could always do two passes over the +decoding of the JSON (reading the "type" first, and the rest later). +However, it is much simpler to just decode this into a `map[string]interface{}` +structure, read the "type" key, then use something like this library +to decode it into the proper structure. diff --git a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go new file mode 100644 index 0000000..1f0abc6 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go @@ -0,0 +1,217 @@ +package mapstructure + +import ( + "errors" + "fmt" + "net" + "reflect" + "strconv" + "strings" + "time" +) + +// typedDecodeHook takes a raw DecodeHookFunc (an interface{}) and turns +// it into the proper DecodeHookFunc type, such as DecodeHookFuncType. +func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { + // Create variables here so we can reference them with the reflect pkg + var f1 DecodeHookFuncType + var f2 DecodeHookFuncKind + + // Fill in the variables into this interface and the rest is done + // automatically using the reflect package. + potential := []interface{}{f1, f2} + + v := reflect.ValueOf(h) + vt := v.Type() + for _, raw := range potential { + pt := reflect.ValueOf(raw).Type() + if vt.ConvertibleTo(pt) { + return v.Convert(pt).Interface() + } + } + + return nil +} + +// DecodeHookExec executes the given decode hook. This should be used +// since it'll naturally degrade to the older backwards compatible DecodeHookFunc +// that took reflect.Kind instead of reflect.Type. +func DecodeHookExec( + raw DecodeHookFunc, + from reflect.Type, to reflect.Type, + data interface{}) (interface{}, error) { + switch f := typedDecodeHook(raw).(type) { + case DecodeHookFuncType: + return f(from, to, data) + case DecodeHookFuncKind: + return f(from.Kind(), to.Kind(), data) + default: + return nil, errors.New("invalid decode hook signature") + } +} + +// ComposeDecodeHookFunc creates a single DecodeHookFunc that +// automatically composes multiple DecodeHookFuncs. +// +// The composed funcs are called in order, with the result of the +// previous transformation. +func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + var err error + for _, f1 := range fs { + data, err = DecodeHookExec(f1, f, t, data) + if err != nil { + return nil, err + } + + // Modify the from kind to be correct with the new data + f = nil + if val := reflect.ValueOf(data); val.IsValid() { + f = val.Type() + } + } + + return data, nil + } +} + +// StringToSliceHookFunc returns a DecodeHookFunc that converts +// string to []string by splitting on the given sep. +func StringToSliceHookFunc(sep string) DecodeHookFunc { + return func( + f reflect.Kind, + t reflect.Kind, + data interface{}) (interface{}, error) { + if f != reflect.String || t != reflect.Slice { + return data, nil + } + + raw := data.(string) + if raw == "" { + return []string{}, nil + } + + return strings.Split(raw, sep), nil + } +} + +// StringToTimeDurationHookFunc returns a DecodeHookFunc that converts +// strings to time.Duration. +func StringToTimeDurationHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(time.Duration(5)) { + return data, nil + } + + // Convert it by parsing + return time.ParseDuration(data.(string)) + } +} + +// StringToIPHookFunc returns a DecodeHookFunc that converts +// strings to net.IP +func StringToIPHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(net.IP{}) { + return data, nil + } + + // Convert it by parsing + ip := net.ParseIP(data.(string)) + if ip == nil { + return net.IP{}, fmt.Errorf("failed parsing ip %v", data) + } + + return ip, nil + } +} + +// StringToIPNetHookFunc returns a DecodeHookFunc that converts +// strings to net.IPNet +func StringToIPNetHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(net.IPNet{}) { + return data, nil + } + + // Convert it by parsing + _, net, err := net.ParseCIDR(data.(string)) + return net, err + } +} + +// StringToTimeHookFunc returns a DecodeHookFunc that converts +// strings to time.Time. +func StringToTimeHookFunc(layout string) DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(time.Time{}) { + return data, nil + } + + // Convert it by parsing + return time.Parse(layout, data.(string)) + } +} + +// WeaklyTypedHook is a DecodeHookFunc which adds support for weak typing to +// the decoder. +// +// Note that this is significantly different from the WeaklyTypedInput option +// of the DecoderConfig. +func WeaklyTypedHook( + f reflect.Kind, + t reflect.Kind, + data interface{}) (interface{}, error) { + dataVal := reflect.ValueOf(data) + switch t { + case reflect.String: + switch f { + case reflect.Bool: + if dataVal.Bool() { + return "1", nil + } + return "0", nil + case reflect.Float32: + return strconv.FormatFloat(dataVal.Float(), 'f', -1, 64), nil + case reflect.Int: + return strconv.FormatInt(dataVal.Int(), 10), nil + case reflect.Slice: + dataType := dataVal.Type() + elemKind := dataType.Elem().Kind() + if elemKind == reflect.Uint8 { + return string(dataVal.Interface().([]uint8)), nil + } + case reflect.Uint: + return strconv.FormatUint(dataVal.Uint(), 10), nil + } + } + + return data, nil +} diff --git a/vendor/github.com/mitchellh/mapstructure/error.go b/vendor/github.com/mitchellh/mapstructure/error.go new file mode 100644 index 0000000..47a99e5 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/error.go @@ -0,0 +1,50 @@ +package mapstructure + +import ( + "errors" + "fmt" + "sort" + "strings" +) + +// Error implements the error interface and can represents multiple +// errors that occur in the course of a single decode. +type Error struct { + Errors []string +} + +func (e *Error) Error() string { + points := make([]string, len(e.Errors)) + for i, err := range e.Errors { + points[i] = fmt.Sprintf("* %s", err) + } + + sort.Strings(points) + return fmt.Sprintf( + "%d error(s) decoding:\n\n%s", + len(e.Errors), strings.Join(points, "\n")) +} + +// WrappedErrors implements the errwrap.Wrapper interface to make this +// return value more useful with the errwrap and go-multierror libraries. +func (e *Error) WrappedErrors() []error { + if e == nil { + return nil + } + + result := make([]error, len(e.Errors)) + for i, e := range e.Errors { + result[i] = errors.New(e) + } + + return result +} + +func appendErrors(errors []string, err error) []string { + switch e := err.(type) { + case *Error: + return append(errors, e.Errors...) + default: + return append(errors, e.Error()) + } +} diff --git a/vendor/github.com/mitchellh/mapstructure/go.mod b/vendor/github.com/mitchellh/mapstructure/go.mod new file mode 100644 index 0000000..d2a7125 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/go.mod @@ -0,0 +1 @@ +module github.com/mitchellh/mapstructure diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go new file mode 100644 index 0000000..256ee63 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/mapstructure.go @@ -0,0 +1,1149 @@ +// Package mapstructure exposes functionality to convert an arbitrary +// map[string]interface{} into a native Go structure. +// +// The Go structure can be arbitrarily complex, containing slices, +// other structs, etc. and the decoder will properly decode nested +// maps and so on into the proper structures in the native Go struct. +// See the examples to see what the decoder is capable of. +package mapstructure + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + "sort" + "strconv" + "strings" +) + +// DecodeHookFunc is the callback function that can be used for +// data transformations. See "DecodeHook" in the DecoderConfig +// struct. +// +// The type should be DecodeHookFuncType or DecodeHookFuncKind. +// Either is accepted. Types are a superset of Kinds (Types can return +// Kinds) and are generally a richer thing to use, but Kinds are simpler +// if you only need those. +// +// The reason DecodeHookFunc is multi-typed is for backwards compatibility: +// we started with Kinds and then realized Types were the better solution, +// but have a promise to not break backwards compat so we now support +// both. +type DecodeHookFunc interface{} + +// DecodeHookFuncType is a DecodeHookFunc which has complete information about +// the source and target types. +type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface{}, error) + +// DecodeHookFuncKind is a DecodeHookFunc which knows only the Kinds of the +// source and target types. +type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) + +// DecoderConfig is the configuration that is used to create a new decoder +// and allows customization of various aspects of decoding. +type DecoderConfig struct { + // DecodeHook, if set, will be called before any decoding and any + // type conversion (if WeaklyTypedInput is on). This lets you modify + // the values before they're set down onto the resulting struct. + // + // If an error is returned, the entire decode will fail with that + // error. + DecodeHook DecodeHookFunc + + // If ErrorUnused is true, then it is an error for there to exist + // keys in the original map that were unused in the decoding process + // (extra keys). + ErrorUnused bool + + // ZeroFields, if set to true, will zero fields before writing them. + // For example, a map will be emptied before decoded values are put in + // it. If this is false, a map will be merged. + ZeroFields bool + + // If WeaklyTypedInput is true, the decoder will make the following + // "weak" conversions: + // + // - bools to string (true = "1", false = "0") + // - numbers to string (base 10) + // - bools to int/uint (true = 1, false = 0) + // - strings to int/uint (base implied by prefix) + // - int to bool (true if value != 0) + // - string to bool (accepts: 1, t, T, TRUE, true, True, 0, f, F, + // FALSE, false, False. Anything else is an error) + // - empty array = empty map and vice versa + // - negative numbers to overflowed uint values (base 10) + // - slice of maps to a merged map + // - single values are converted to slices if required. Each + // element is weakly decoded. For example: "4" can become []int{4} + // if the target type is an int slice. + // + WeaklyTypedInput bool + + // Metadata is the struct that will contain extra metadata about + // the decoding. If this is nil, then no metadata will be tracked. + Metadata *Metadata + + // Result is a pointer to the struct that will contain the decoded + // value. + Result interface{} + + // The tag name that mapstructure reads for field names. This + // defaults to "mapstructure" + TagName string +} + +// A Decoder takes a raw interface value and turns it into structured +// data, keeping track of rich error information along the way in case +// anything goes wrong. Unlike the basic top-level Decode method, you can +// more finely control how the Decoder behaves using the DecoderConfig +// structure. The top-level Decode method is just a convenience that sets +// up the most basic Decoder. +type Decoder struct { + config *DecoderConfig +} + +// Metadata contains information about decoding a structure that +// is tedious or difficult to get otherwise. +type Metadata struct { + // Keys are the keys of the structure which were successfully decoded + Keys []string + + // Unused is a slice of keys that were found in the raw value but + // weren't decoded since there was no matching field in the result interface + Unused []string +} + +// Decode takes an input structure and uses reflection to translate it to +// the output structure. output must be a pointer to a map or struct. +func Decode(input interface{}, output interface{}) error { + config := &DecoderConfig{ + Metadata: nil, + Result: output, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// WeakDecode is the same as Decode but is shorthand to enable +// WeaklyTypedInput. See DecoderConfig for more info. +func WeakDecode(input, output interface{}) error { + config := &DecoderConfig{ + Metadata: nil, + Result: output, + WeaklyTypedInput: true, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// DecodeMetadata is the same as Decode, but is shorthand to +// enable metadata collection. See DecoderConfig for more info. +func DecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { + config := &DecoderConfig{ + Metadata: metadata, + Result: output, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// WeakDecodeMetadata is the same as Decode, but is shorthand to +// enable both WeaklyTypedInput and metadata collection. See +// DecoderConfig for more info. +func WeakDecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { + config := &DecoderConfig{ + Metadata: metadata, + Result: output, + WeaklyTypedInput: true, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// NewDecoder returns a new decoder for the given configuration. Once +// a decoder has been returned, the same configuration must not be used +// again. +func NewDecoder(config *DecoderConfig) (*Decoder, error) { + val := reflect.ValueOf(config.Result) + if val.Kind() != reflect.Ptr { + return nil, errors.New("result must be a pointer") + } + + val = val.Elem() + if !val.CanAddr() { + return nil, errors.New("result must be addressable (a pointer)") + } + + if config.Metadata != nil { + if config.Metadata.Keys == nil { + config.Metadata.Keys = make([]string, 0) + } + + if config.Metadata.Unused == nil { + config.Metadata.Unused = make([]string, 0) + } + } + + if config.TagName == "" { + config.TagName = "mapstructure" + } + + result := &Decoder{ + config: config, + } + + return result, nil +} + +// Decode decodes the given raw interface to the target pointer specified +// by the configuration. +func (d *Decoder) Decode(input interface{}) error { + return d.decode("", input, reflect.ValueOf(d.config.Result).Elem()) +} + +// Decodes an unknown data type into a specific reflection value. +func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) error { + var inputVal reflect.Value + if input != nil { + inputVal = reflect.ValueOf(input) + + // We need to check here if input is a typed nil. Typed nils won't + // match the "input == nil" below so we check that here. + if inputVal.Kind() == reflect.Ptr && inputVal.IsNil() { + input = nil + } + } + + if input == nil { + // If the data is nil, then we don't set anything, unless ZeroFields is set + // to true. + if d.config.ZeroFields { + outVal.Set(reflect.Zero(outVal.Type())) + + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + } + return nil + } + + if !inputVal.IsValid() { + // If the input value is invalid, then we just set the value + // to be the zero value. + outVal.Set(reflect.Zero(outVal.Type())) + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + return nil + } + + if d.config.DecodeHook != nil { + // We have a DecodeHook, so let's pre-process the input. + var err error + input, err = DecodeHookExec( + d.config.DecodeHook, + inputVal.Type(), outVal.Type(), input) + if err != nil { + return fmt.Errorf("error decoding '%s': %s", name, err) + } + } + + var err error + outputKind := getKind(outVal) + switch outputKind { + case reflect.Bool: + err = d.decodeBool(name, input, outVal) + case reflect.Interface: + err = d.decodeBasic(name, input, outVal) + case reflect.String: + err = d.decodeString(name, input, outVal) + case reflect.Int: + err = d.decodeInt(name, input, outVal) + case reflect.Uint: + err = d.decodeUint(name, input, outVal) + case reflect.Float32: + err = d.decodeFloat(name, input, outVal) + case reflect.Struct: + err = d.decodeStruct(name, input, outVal) + case reflect.Map: + err = d.decodeMap(name, input, outVal) + case reflect.Ptr: + err = d.decodePtr(name, input, outVal) + case reflect.Slice: + err = d.decodeSlice(name, input, outVal) + case reflect.Array: + err = d.decodeArray(name, input, outVal) + case reflect.Func: + err = d.decodeFunc(name, input, outVal) + default: + // If we reached this point then we weren't able to decode it + return fmt.Errorf("%s: unsupported type: %s", name, outputKind) + } + + // If we reached here, then we successfully decoded SOMETHING, so + // mark the key as used if we're tracking metainput. + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + + return err +} + +// This decodes a basic type (bool, int, string, etc.) and sets the +// value to "data" of that type. +func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) error { + if val.IsValid() && val.Elem().IsValid() { + return d.decode(name, data, val.Elem()) + } + + dataVal := reflect.ValueOf(data) + + // If the input data is a pointer, and the assigned type is the dereference + // of that exact pointer, then indirect it so that we can assign it. + // Example: *string to string + if dataVal.Kind() == reflect.Ptr && dataVal.Type().Elem() == val.Type() { + dataVal = reflect.Indirect(dataVal) + } + + if !dataVal.IsValid() { + dataVal = reflect.Zero(val.Type()) + } + + dataValType := dataVal.Type() + if !dataValType.AssignableTo(val.Type()) { + return fmt.Errorf( + "'%s' expected type '%s', got '%s'", + name, val.Type(), dataValType) + } + + val.Set(dataVal) + return nil +} + +func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + converted := true + switch { + case dataKind == reflect.String: + val.SetString(dataVal.String()) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetString("1") + } else { + val.SetString("0") + } + case dataKind == reflect.Int && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatInt(dataVal.Int(), 10)) + case dataKind == reflect.Uint && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatUint(dataVal.Uint(), 10)) + case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatFloat(dataVal.Float(), 'f', -1, 64)) + case dataKind == reflect.Slice && d.config.WeaklyTypedInput, + dataKind == reflect.Array && d.config.WeaklyTypedInput: + dataType := dataVal.Type() + elemKind := dataType.Elem().Kind() + switch elemKind { + case reflect.Uint8: + var uints []uint8 + if dataKind == reflect.Array { + uints = make([]uint8, dataVal.Len(), dataVal.Len()) + for i := range uints { + uints[i] = dataVal.Index(i).Interface().(uint8) + } + } else { + uints = dataVal.Interface().([]uint8) + } + val.SetString(string(uints)) + default: + converted = false + } + default: + converted = false + } + + if !converted { + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + dataType := dataVal.Type() + + switch { + case dataKind == reflect.Int: + val.SetInt(dataVal.Int()) + case dataKind == reflect.Uint: + val.SetInt(int64(dataVal.Uint())) + case dataKind == reflect.Float32: + val.SetInt(int64(dataVal.Float())) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetInt(1) + } else { + val.SetInt(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + i, err := strconv.ParseInt(dataVal.String(), 0, val.Type().Bits()) + if err == nil { + val.SetInt(i) + } else { + return fmt.Errorf("cannot parse '%s' as int: %s", name, err) + } + case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": + jn := data.(json.Number) + i, err := jn.Int64() + if err != nil { + return fmt.Errorf( + "error decoding json.Number into %s: %s", name, err) + } + val.SetInt(i) + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + switch { + case dataKind == reflect.Int: + i := dataVal.Int() + if i < 0 && !d.config.WeaklyTypedInput { + return fmt.Errorf("cannot parse '%s', %d overflows uint", + name, i) + } + val.SetUint(uint64(i)) + case dataKind == reflect.Uint: + val.SetUint(dataVal.Uint()) + case dataKind == reflect.Float32: + f := dataVal.Float() + if f < 0 && !d.config.WeaklyTypedInput { + return fmt.Errorf("cannot parse '%s', %f overflows uint", + name, f) + } + val.SetUint(uint64(f)) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetUint(1) + } else { + val.SetUint(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + i, err := strconv.ParseUint(dataVal.String(), 0, val.Type().Bits()) + if err == nil { + val.SetUint(i) + } else { + return fmt.Errorf("cannot parse '%s' as uint: %s", name, err) + } + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + switch { + case dataKind == reflect.Bool: + val.SetBool(dataVal.Bool()) + case dataKind == reflect.Int && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Int() != 0) + case dataKind == reflect.Uint && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Uint() != 0) + case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Float() != 0) + case dataKind == reflect.String && d.config.WeaklyTypedInput: + b, err := strconv.ParseBool(dataVal.String()) + if err == nil { + val.SetBool(b) + } else if dataVal.String() == "" { + val.SetBool(false) + } else { + return fmt.Errorf("cannot parse '%s' as bool: %s", name, err) + } + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + dataType := dataVal.Type() + + switch { + case dataKind == reflect.Int: + val.SetFloat(float64(dataVal.Int())) + case dataKind == reflect.Uint: + val.SetFloat(float64(dataVal.Uint())) + case dataKind == reflect.Float32: + val.SetFloat(dataVal.Float()) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetFloat(1) + } else { + val.SetFloat(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + f, err := strconv.ParseFloat(dataVal.String(), val.Type().Bits()) + if err == nil { + val.SetFloat(f) + } else { + return fmt.Errorf("cannot parse '%s' as float: %s", name, err) + } + case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": + jn := data.(json.Number) + i, err := jn.Float64() + if err != nil { + return fmt.Errorf( + "error decoding json.Number into %s: %s", name, err) + } + val.SetFloat(i) + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeMap(name string, data interface{}, val reflect.Value) error { + valType := val.Type() + valKeyType := valType.Key() + valElemType := valType.Elem() + + // By default we overwrite keys in the current map + valMap := val + + // If the map is nil or we're purposely zeroing fields, make a new map + if valMap.IsNil() || d.config.ZeroFields { + // Make a new map to hold our result + mapType := reflect.MapOf(valKeyType, valElemType) + valMap = reflect.MakeMap(mapType) + } + + // Check input type and based on the input type jump to the proper func + dataVal := reflect.Indirect(reflect.ValueOf(data)) + switch dataVal.Kind() { + case reflect.Map: + return d.decodeMapFromMap(name, dataVal, val, valMap) + + case reflect.Struct: + return d.decodeMapFromStruct(name, dataVal, val, valMap) + + case reflect.Array, reflect.Slice: + if d.config.WeaklyTypedInput { + return d.decodeMapFromSlice(name, dataVal, val, valMap) + } + + fallthrough + + default: + return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) + } +} + +func (d *Decoder) decodeMapFromSlice(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + // Special case for BC reasons (covered by tests) + if dataVal.Len() == 0 { + val.Set(valMap) + return nil + } + + for i := 0; i < dataVal.Len(); i++ { + err := d.decode( + fmt.Sprintf("%s[%d]", name, i), + dataVal.Index(i).Interface(), val) + if err != nil { + return err + } + } + + return nil +} + +func (d *Decoder) decodeMapFromMap(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + valType := val.Type() + valKeyType := valType.Key() + valElemType := valType.Elem() + + // Accumulate errors + errors := make([]string, 0) + + // If the input data is empty, then we just match what the input data is. + if dataVal.Len() == 0 { + if dataVal.IsNil() { + if !val.IsNil() { + val.Set(dataVal) + } + } else { + // Set to empty allocated value + val.Set(valMap) + } + + return nil + } + + for _, k := range dataVal.MapKeys() { + fieldName := fmt.Sprintf("%s[%s]", name, k) + + // First decode the key into the proper type + currentKey := reflect.Indirect(reflect.New(valKeyType)) + if err := d.decode(fieldName, k.Interface(), currentKey); err != nil { + errors = appendErrors(errors, err) + continue + } + + // Next decode the data into the proper type + v := dataVal.MapIndex(k).Interface() + currentVal := reflect.Indirect(reflect.New(valElemType)) + if err := d.decode(fieldName, v, currentVal); err != nil { + errors = appendErrors(errors, err) + continue + } + + valMap.SetMapIndex(currentKey, currentVal) + } + + // Set the built up map to the value + val.Set(valMap) + + // If we had errors, return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + typ := dataVal.Type() + for i := 0; i < typ.NumField(); i++ { + // Get the StructField first since this is a cheap operation. If the + // field is unexported, then ignore it. + f := typ.Field(i) + if f.PkgPath != "" { + continue + } + + // Next get the actual value of this field and verify it is assignable + // to the map value. + v := dataVal.Field(i) + if !v.Type().AssignableTo(valMap.Type().Elem()) { + return fmt.Errorf("cannot assign type '%s' to map value field of type '%s'", v.Type(), valMap.Type().Elem()) + } + + tagValue := f.Tag.Get(d.config.TagName) + tagParts := strings.Split(tagValue, ",") + + // Determine the name of the key in the map + keyName := f.Name + if tagParts[0] != "" { + if tagParts[0] == "-" { + continue + } + keyName = tagParts[0] + } + + // If "squash" is specified in the tag, we squash the field down. + squash := false + for _, tag := range tagParts[1:] { + if tag == "squash" { + squash = true + break + } + } + if squash && v.Kind() != reflect.Struct { + return fmt.Errorf("cannot squash non-struct type '%s'", v.Type()) + } + + switch v.Kind() { + // this is an embedded struct, so handle it differently + case reflect.Struct: + x := reflect.New(v.Type()) + x.Elem().Set(v) + + vType := valMap.Type() + vKeyType := vType.Key() + vElemType := vType.Elem() + mType := reflect.MapOf(vKeyType, vElemType) + vMap := reflect.MakeMap(mType) + + err := d.decode(keyName, x.Interface(), vMap) + if err != nil { + return err + } + + if squash { + for _, k := range vMap.MapKeys() { + valMap.SetMapIndex(k, vMap.MapIndex(k)) + } + } else { + valMap.SetMapIndex(reflect.ValueOf(keyName), vMap) + } + + default: + valMap.SetMapIndex(reflect.ValueOf(keyName), v) + } + } + + if val.CanAddr() { + val.Set(valMap) + } + + return nil +} + +func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error { + // If the input data is nil, then we want to just set the output + // pointer to be nil as well. + isNil := data == nil + if !isNil { + switch v := reflect.Indirect(reflect.ValueOf(data)); v.Kind() { + case reflect.Chan, + reflect.Func, + reflect.Interface, + reflect.Map, + reflect.Ptr, + reflect.Slice: + isNil = v.IsNil() + } + } + if isNil { + if !val.IsNil() && val.CanSet() { + nilValue := reflect.New(val.Type()).Elem() + val.Set(nilValue) + } + + return nil + } + + // Create an element of the concrete (non pointer) type and decode + // into that. Then set the value of the pointer to this type. + valType := val.Type() + valElemType := valType.Elem() + if val.CanSet() { + realVal := val + if realVal.IsNil() || d.config.ZeroFields { + realVal = reflect.New(valElemType) + } + + if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil { + return err + } + + val.Set(realVal) + } else { + if err := d.decode(name, data, reflect.Indirect(val)); err != nil { + return err + } + } + return nil +} + +func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) error { + // Create an element of the concrete (non pointer) type and decode + // into that. Then set the value of the pointer to this type. + dataVal := reflect.Indirect(reflect.ValueOf(data)) + if val.Type() != dataVal.Type() { + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + val.Set(dataVal) + return nil +} + +func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataValKind := dataVal.Kind() + valType := val.Type() + valElemType := valType.Elem() + sliceType := reflect.SliceOf(valElemType) + + valSlice := val + if valSlice.IsNil() || d.config.ZeroFields { + if d.config.WeaklyTypedInput { + switch { + // Slice and array we use the normal logic + case dataValKind == reflect.Slice, dataValKind == reflect.Array: + break + + // Empty maps turn into empty slices + case dataValKind == reflect.Map: + if dataVal.Len() == 0 { + val.Set(reflect.MakeSlice(sliceType, 0, 0)) + return nil + } + // Create slice of maps of other sizes + return d.decodeSlice(name, []interface{}{data}, val) + + case dataValKind == reflect.String && valElemType.Kind() == reflect.Uint8: + return d.decodeSlice(name, []byte(dataVal.String()), val) + + // All other types we try to convert to the slice type + // and "lift" it into it. i.e. a string becomes a string slice. + default: + // Just re-try this function with data as a slice. + return d.decodeSlice(name, []interface{}{data}, val) + } + } + + // Check input type + if dataValKind != reflect.Array && dataValKind != reflect.Slice { + return fmt.Errorf( + "'%s': source data must be an array or slice, got %s", name, dataValKind) + + } + + // If the input value is empty, then don't allocate since non-nil != nil + if dataVal.Len() == 0 { + return nil + } + + // Make a new slice to hold our result, same size as the original data. + valSlice = reflect.MakeSlice(sliceType, dataVal.Len(), dataVal.Len()) + } + + // Accumulate any errors + errors := make([]string, 0) + + for i := 0; i < dataVal.Len(); i++ { + currentData := dataVal.Index(i).Interface() + for valSlice.Len() <= i { + valSlice = reflect.Append(valSlice, reflect.Zero(valElemType)) + } + currentField := valSlice.Index(i) + + fieldName := fmt.Sprintf("%s[%d]", name, i) + if err := d.decode(fieldName, currentData, currentField); err != nil { + errors = appendErrors(errors, err) + } + } + + // Finally, set the value to the slice we built up + val.Set(valSlice) + + // If there were errors, we return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeArray(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataValKind := dataVal.Kind() + valType := val.Type() + valElemType := valType.Elem() + arrayType := reflect.ArrayOf(valType.Len(), valElemType) + + valArray := val + + if valArray.Interface() == reflect.Zero(valArray.Type()).Interface() || d.config.ZeroFields { + // Check input type + if dataValKind != reflect.Array && dataValKind != reflect.Slice { + if d.config.WeaklyTypedInput { + switch { + // Empty maps turn into empty arrays + case dataValKind == reflect.Map: + if dataVal.Len() == 0 { + val.Set(reflect.Zero(arrayType)) + return nil + } + + // All other types we try to convert to the array type + // and "lift" it into it. i.e. a string becomes a string array. + default: + // Just re-try this function with data as a slice. + return d.decodeArray(name, []interface{}{data}, val) + } + } + + return fmt.Errorf( + "'%s': source data must be an array or slice, got %s", name, dataValKind) + + } + if dataVal.Len() > arrayType.Len() { + return fmt.Errorf( + "'%s': expected source data to have length less or equal to %d, got %d", name, arrayType.Len(), dataVal.Len()) + + } + + // Make a new array to hold our result, same size as the original data. + valArray = reflect.New(arrayType).Elem() + } + + // Accumulate any errors + errors := make([]string, 0) + + for i := 0; i < dataVal.Len(); i++ { + currentData := dataVal.Index(i).Interface() + currentField := valArray.Index(i) + + fieldName := fmt.Sprintf("%s[%d]", name, i) + if err := d.decode(fieldName, currentData, currentField); err != nil { + errors = appendErrors(errors, err) + } + } + + // Finally, set the value to the array we built up + val.Set(valArray) + + // If there were errors, we return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + + // If the type of the value to write to and the data match directly, + // then we just set it directly instead of recursing into the structure. + if dataVal.Type() == val.Type() { + val.Set(dataVal) + return nil + } + + dataValKind := dataVal.Kind() + switch dataValKind { + case reflect.Map: + return d.decodeStructFromMap(name, dataVal, val) + + case reflect.Struct: + // Not the most efficient way to do this but we can optimize later if + // we want to. To convert from struct to struct we go to map first + // as an intermediary. + m := make(map[string]interface{}) + mval := reflect.Indirect(reflect.ValueOf(&m)) + if err := d.decodeMapFromStruct(name, dataVal, mval, mval); err != nil { + return err + } + + result := d.decodeStructFromMap(name, mval, val) + return result + + default: + return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) + } +} + +func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) error { + dataValType := dataVal.Type() + if kind := dataValType.Key().Kind(); kind != reflect.String && kind != reflect.Interface { + return fmt.Errorf( + "'%s' needs a map with string keys, has '%s' keys", + name, dataValType.Key().Kind()) + } + + dataValKeys := make(map[reflect.Value]struct{}) + dataValKeysUnused := make(map[interface{}]struct{}) + for _, dataValKey := range dataVal.MapKeys() { + dataValKeys[dataValKey] = struct{}{} + dataValKeysUnused[dataValKey.Interface()] = struct{}{} + } + + errors := make([]string, 0) + + // This slice will keep track of all the structs we'll be decoding. + // There can be more than one struct if there are embedded structs + // that are squashed. + structs := make([]reflect.Value, 1, 5) + structs[0] = val + + // Compile the list of all the fields that we're going to be decoding + // from all the structs. + type field struct { + field reflect.StructField + val reflect.Value + } + fields := []field{} + for len(structs) > 0 { + structVal := structs[0] + structs = structs[1:] + + structType := structVal.Type() + + for i := 0; i < structType.NumField(); i++ { + fieldType := structType.Field(i) + fieldKind := fieldType.Type.Kind() + + // If "squash" is specified in the tag, we squash the field down. + squash := false + tagParts := strings.Split(fieldType.Tag.Get(d.config.TagName), ",") + for _, tag := range tagParts[1:] { + if tag == "squash" { + squash = true + break + } + } + + if squash { + if fieldKind != reflect.Struct { + errors = appendErrors(errors, + fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldKind)) + } else { + structs = append(structs, structVal.FieldByName(fieldType.Name)) + } + continue + } + + // Normal struct field, store it away + fields = append(fields, field{fieldType, structVal.Field(i)}) + } + } + + // for fieldType, field := range fields { + for _, f := range fields { + field, fieldValue := f.field, f.val + fieldName := field.Name + + tagValue := field.Tag.Get(d.config.TagName) + tagValue = strings.SplitN(tagValue, ",", 2)[0] + if tagValue != "" { + fieldName = tagValue + } + + rawMapKey := reflect.ValueOf(fieldName) + rawMapVal := dataVal.MapIndex(rawMapKey) + if !rawMapVal.IsValid() { + // Do a slower search by iterating over each key and + // doing case-insensitive search. + for dataValKey := range dataValKeys { + mK, ok := dataValKey.Interface().(string) + if !ok { + // Not a string key + continue + } + + if strings.EqualFold(mK, fieldName) { + rawMapKey = dataValKey + rawMapVal = dataVal.MapIndex(dataValKey) + break + } + } + + if !rawMapVal.IsValid() { + // There was no matching key in the map for the value in + // the struct. Just ignore. + continue + } + } + + // Delete the key we're using from the unused map so we stop tracking + delete(dataValKeysUnused, rawMapKey.Interface()) + + if !fieldValue.IsValid() { + // This should never happen + panic("field is not valid") + } + + // If we can't set the field, then it is unexported or something, + // and we just continue onwards. + if !fieldValue.CanSet() { + continue + } + + // If the name is empty string, then we're at the root, and we + // don't dot-join the fields. + if name != "" { + fieldName = fmt.Sprintf("%s.%s", name, fieldName) + } + + if err := d.decode(fieldName, rawMapVal.Interface(), fieldValue); err != nil { + errors = appendErrors(errors, err) + } + } + + if d.config.ErrorUnused && len(dataValKeysUnused) > 0 { + keys := make([]string, 0, len(dataValKeysUnused)) + for rawKey := range dataValKeysUnused { + keys = append(keys, rawKey.(string)) + } + sort.Strings(keys) + + err := fmt.Errorf("'%s' has invalid keys: %s", name, strings.Join(keys, ", ")) + errors = appendErrors(errors, err) + } + + if len(errors) > 0 { + return &Error{errors} + } + + // Add the unused keys to the list of unused keys if we're tracking metadata + if d.config.Metadata != nil { + for rawKey := range dataValKeysUnused { + key := rawKey.(string) + if name != "" { + key = fmt.Sprintf("%s.%s", name, key) + } + + d.config.Metadata.Unused = append(d.config.Metadata.Unused, key) + } + } + + return nil +} + +func getKind(val reflect.Value) reflect.Kind { + kind := val.Kind() + + switch { + case kind >= reflect.Int && kind <= reflect.Int64: + return reflect.Int + case kind >= reflect.Uint && kind <= reflect.Uint64: + return reflect.Uint + case kind >= reflect.Float32 && kind <= reflect.Float64: + return reflect.Float32 + default: + return kind + } +} diff --git a/vendor/github.com/pelletier/go-toml/.gitignore b/vendor/github.com/pelletier/go-toml/.gitignore new file mode 100644 index 0000000..99e38bb --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/.gitignore @@ -0,0 +1,2 @@ +test_program/test_program_bin +fuzz/ diff --git a/vendor/github.com/pelletier/go-toml/.travis.yml b/vendor/github.com/pelletier/go-toml/.travis.yml new file mode 100644 index 0000000..c9fbf30 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/.travis.yml @@ -0,0 +1,23 @@ +sudo: false +language: go +go: + - 1.8.x + - 1.9.x + - 1.10.x + - tip +matrix: + allow_failures: + - go: tip + fast_finish: true +script: + - if [ -n "$(go fmt ./...)" ]; then exit 1; fi + - ./test.sh + - ./benchmark.sh $TRAVIS_BRANCH https://github.com/$TRAVIS_REPO_SLUG.git +before_install: + - go get github.com/axw/gocov/gocov + - go get github.com/mattn/goveralls + - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi +branches: + only: [master] +after_success: + - $HOME/gopath/bin/goveralls -service=travis-ci -coverprofile=coverage.out -repotoken $COVERALLS_TOKEN diff --git a/vendor/github.com/pelletier/go-toml/LICENSE b/vendor/github.com/pelletier/go-toml/LICENSE new file mode 100644 index 0000000..583bdae --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 - 2017 Thomas Pelletier, Eric Anderton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/pelletier/go-toml/README.md b/vendor/github.com/pelletier/go-toml/README.md new file mode 100644 index 0000000..0d357ac --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/README.md @@ -0,0 +1,131 @@ +# go-toml + +Go library for the [TOML](https://github.com/mojombo/toml) format. + +This library supports TOML version +[v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) + +[![GoDoc](https://godoc.org/github.com/pelletier/go-toml?status.svg)](http://godoc.org/github.com/pelletier/go-toml) +[![license](https://img.shields.io/github/license/pelletier/go-toml.svg)](https://github.com/pelletier/go-toml/blob/master/LICENSE) +[![Build Status](https://travis-ci.org/pelletier/go-toml.svg?branch=master)](https://travis-ci.org/pelletier/go-toml) +[![Coverage Status](https://coveralls.io/repos/github/pelletier/go-toml/badge.svg?branch=master)](https://coveralls.io/github/pelletier/go-toml?branch=master) +[![Go Report Card](https://goreportcard.com/badge/github.com/pelletier/go-toml)](https://goreportcard.com/report/github.com/pelletier/go-toml) + +## Features + +Go-toml provides the following features for using data parsed from TOML documents: + +* Load TOML documents from files and string data +* Easily navigate TOML structure using Tree +* Mashaling and unmarshaling to and from data structures +* Line & column position data for all parsed elements +* [Query support similar to JSON-Path](query/) +* Syntax errors contain line and column numbers + +## Import + +```go +import "github.com/pelletier/go-toml" +``` + +## Usage example + +Read a TOML document: + +```go +config, _ := toml.Load(` +[postgres] +user = "pelletier" +password = "mypassword"`) +// retrieve data directly +user := config.Get("postgres.user").(string) + +// or using an intermediate object +postgresConfig := config.Get("postgres").(*toml.Tree) +password := postgresConfig.Get("password").(string) +``` + +Or use Unmarshal: + +```go +type Postgres struct { + User string + Password string +} +type Config struct { + Postgres Postgres +} + +doc := []byte(` +[Postgres] +User = "pelletier" +Password = "mypassword"`) + +config := Config{} +toml.Unmarshal(doc, &config) +fmt.Println("user=", config.Postgres.User) +``` + +Or use a query: + +```go +// use a query to gather elements without walking the tree +q, _ := query.Compile("$..[user,password]") +results := q.Execute(config) +for ii, item := range results.Values() { + fmt.Println("Query result %d: %v", ii, item) +} +``` + +## Documentation + +The documentation and additional examples are available at +[godoc.org](http://godoc.org/github.com/pelletier/go-toml). + +## Tools + +Go-toml provides two handy command line tools: + +* `tomll`: Reads TOML files and lint them. + + ``` + go install github.com/pelletier/go-toml/cmd/tomll + tomll --help + ``` +* `tomljson`: Reads a TOML file and outputs its JSON representation. + + ``` + go install github.com/pelletier/go-toml/cmd/tomljson + tomljson --help + ``` + +## Contribute + +Feel free to report bugs and patches using GitHub's pull requests system on +[pelletier/go-toml](https://github.com/pelletier/go-toml). Any feedback would be +much appreciated! + +### Run tests + +You have to make sure two kind of tests run: + +1. The Go unit tests +2. The TOML examples base + +You can run both of them using `./test.sh`. + +### Fuzzing + +The script `./fuzz.sh` is available to +run [go-fuzz](https://github.com/dvyukov/go-fuzz) on go-toml. + +## Versioning + +Go-toml follows [Semantic Versioning](http://semver.org/). The supported version +of [TOML](https://github.com/toml-lang/toml) is indicated at the beginning of +this document. The last two major versions of Go are supported +(see [Go Release Policy](https://golang.org/doc/devel/release.html#policy)). + +## License + +The MIT License (MIT). Read [LICENSE](LICENSE). diff --git a/vendor/github.com/pelletier/go-toml/benchmark.json b/vendor/github.com/pelletier/go-toml/benchmark.json new file mode 100644 index 0000000..86f99c6 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/benchmark.json @@ -0,0 +1,164 @@ +{ + "array": { + "key1": [ + 1, + 2, + 3 + ], + "key2": [ + "red", + "yellow", + "green" + ], + "key3": [ + [ + 1, + 2 + ], + [ + 3, + 4, + 5 + ] + ], + "key4": [ + [ + 1, + 2 + ], + [ + "a", + "b", + "c" + ] + ], + "key5": [ + 1, + 2, + 3 + ], + "key6": [ + 1, + 2 + ] + }, + "boolean": { + "False": false, + "True": true + }, + "datetime": { + "key1": "1979-05-27T07:32:00Z", + "key2": "1979-05-27T00:32:00-07:00", + "key3": "1979-05-27T00:32:00.999999-07:00" + }, + "float": { + "both": { + "key": 6.626e-34 + }, + "exponent": { + "key1": 5e+22, + "key2": 1000000, + "key3": -0.02 + }, + "fractional": { + "key1": 1, + "key2": 3.1415, + "key3": -0.01 + }, + "underscores": { + "key1": 9224617.445991227, + "key2": 1e+100 + } + }, + "fruit": [{ + "name": "apple", + "physical": { + "color": "red", + "shape": "round" + }, + "variety": [{ + "name": "red delicious" + }, + { + "name": "granny smith" + } + ] + }, + { + "name": "banana", + "variety": [{ + "name": "plantain" + }] + } + ], + "integer": { + "key1": 99, + "key2": 42, + "key3": 0, + "key4": -17, + "underscores": { + "key1": 1000, + "key2": 5349221, + "key3": 12345 + } + }, + "products": [{ + "name": "Hammer", + "sku": 738594937 + }, + {}, + { + "color": "gray", + "name": "Nail", + "sku": 284758393 + } + ], + "string": { + "basic": { + "basic": "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF." + }, + "literal": { + "multiline": { + "lines": "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n", + "regex2": "I [dw]on't need \\d{2} apples" + }, + "quoted": "Tom \"Dubs\" Preston-Werner", + "regex": "\u003c\\i\\c*\\s*\u003e", + "winpath": "C:\\Users\\nodejs\\templates", + "winpath2": "\\\\ServerX\\admin$\\system32\\" + }, + "multiline": { + "continued": { + "key1": "The quick brown fox jumps over the lazy dog.", + "key2": "The quick brown fox jumps over the lazy dog.", + "key3": "The quick brown fox jumps over the lazy dog." + }, + "key1": "One\nTwo", + "key2": "One\nTwo", + "key3": "One\nTwo" + } + }, + "table": { + "inline": { + "name": { + "first": "Tom", + "last": "Preston-Werner" + }, + "point": { + "x": 1, + "y": 2 + } + }, + "key": "value", + "subtable": { + "key": "another value" + } + }, + "x": { + "y": { + "z": { + "w": {} + } + } + } +} diff --git a/vendor/github.com/pelletier/go-toml/benchmark.sh b/vendor/github.com/pelletier/go-toml/benchmark.sh new file mode 100644 index 0000000..8b8bb52 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/benchmark.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -e + +reference_ref=${1:-master} +reference_git=${2:-.} + +if ! `hash benchstat 2>/dev/null`; then + echo "Installing benchstat" + go get golang.org/x/perf/cmd/benchstat + go install golang.org/x/perf/cmd/benchstat +fi + +tempdir=`mktemp -d /tmp/go-toml-benchmark-XXXXXX` +ref_tempdir="${tempdir}/ref" +ref_benchmark="${ref_tempdir}/benchmark-`echo -n ${reference_ref}|tr -s '/' '-'`.txt" +local_benchmark="`pwd`/benchmark-local.txt" + +echo "=== ${reference_ref} (${ref_tempdir})" +git clone ${reference_git} ${ref_tempdir} >/dev/null 2>/dev/null +pushd ${ref_tempdir} >/dev/null +git checkout ${reference_ref} >/dev/null 2>/dev/null +go test -bench=. -benchmem | tee ${ref_benchmark} +popd >/dev/null + +echo "" +echo "=== local" +go test -bench=. -benchmem | tee ${local_benchmark} + +echo "" +echo "=== diff" +benchstat -delta-test=none ${ref_benchmark} ${local_benchmark} \ No newline at end of file diff --git a/vendor/github.com/pelletier/go-toml/benchmark.toml b/vendor/github.com/pelletier/go-toml/benchmark.toml new file mode 100644 index 0000000..dfd77e0 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/benchmark.toml @@ -0,0 +1,244 @@ +################################################################################ +## Comment + +# Speak your mind with the hash symbol. They go from the symbol to the end of +# the line. + + +################################################################################ +## Table + +# Tables (also known as hash tables or dictionaries) are collections of +# key/value pairs. They appear in square brackets on a line by themselves. + +[table] + +key = "value" # Yeah, you can do this. + +# Nested tables are denoted by table names with dots in them. Name your tables +# whatever crap you please, just don't use #, ., [ or ]. + +[table.subtable] + +key = "another value" + +# You don't need to specify all the super-tables if you don't want to. TOML +# knows how to do it for you. + +# [x] you +# [x.y] don't +# [x.y.z] need these +[x.y.z.w] # for this to work + + +################################################################################ +## Inline Table + +# Inline tables provide a more compact syntax for expressing tables. They are +# especially useful for grouped data that can otherwise quickly become verbose. +# Inline tables are enclosed in curly braces `{` and `}`. No newlines are +# allowed between the curly braces unless they are valid within a value. + +[table.inline] + +name = { first = "Tom", last = "Preston-Werner" } +point = { x = 1, y = 2 } + + +################################################################################ +## String + +# There are four ways to express strings: basic, multi-line basic, literal, and +# multi-line literal. All strings must contain only valid UTF-8 characters. + +[string.basic] + +basic = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF." + +[string.multiline] + +# The following strings are byte-for-byte equivalent: +key1 = "One\nTwo" +key2 = """One\nTwo""" +key3 = """ +One +Two""" + +[string.multiline.continued] + +# The following strings are byte-for-byte equivalent: +key1 = "The quick brown fox jumps over the lazy dog." + +key2 = """ +The quick brown \ + + + fox jumps over \ + the lazy dog.""" + +key3 = """\ + The quick brown \ + fox jumps over \ + the lazy dog.\ + """ + +[string.literal] + +# What you see is what you get. +winpath = 'C:\Users\nodejs\templates' +winpath2 = '\\ServerX\admin$\system32\' +quoted = 'Tom "Dubs" Preston-Werner' +regex = '<\i\c*\s*>' + + +[string.literal.multiline] + +regex2 = '''I [dw]on't need \d{2} apples''' +lines = ''' +The first newline is +trimmed in raw strings. + All other whitespace + is preserved. +''' + + +################################################################################ +## Integer + +# Integers are whole numbers. Positive numbers may be prefixed with a plus sign. +# Negative numbers are prefixed with a minus sign. + +[integer] + +key1 = +99 +key2 = 42 +key3 = 0 +key4 = -17 + +[integer.underscores] + +# For large numbers, you may use underscores to enhance readability. Each +# underscore must be surrounded by at least one digit. +key1 = 1_000 +key2 = 5_349_221 +key3 = 1_2_3_4_5 # valid but inadvisable + + +################################################################################ +## Float + +# A float consists of an integer part (which may be prefixed with a plus or +# minus sign) followed by a fractional part and/or an exponent part. + +[float.fractional] + +key1 = +1.0 +key2 = 3.1415 +key3 = -0.01 + +[float.exponent] + +key1 = 5e+22 +key2 = 1e6 +key3 = -2E-2 + +[float.both] + +key = 6.626e-34 + +[float.underscores] + +key1 = 9_224_617.445_991_228_313 +key2 = 1e1_00 + + +################################################################################ +## Boolean + +# Booleans are just the tokens you're used to. Always lowercase. + +[boolean] + +True = true +False = false + + +################################################################################ +## Datetime + +# Datetimes are RFC 3339 dates. + +[datetime] + +key1 = 1979-05-27T07:32:00Z +key2 = 1979-05-27T00:32:00-07:00 +key3 = 1979-05-27T00:32:00.999999-07:00 + + +################################################################################ +## Array + +# Arrays are square brackets with other primitives inside. Whitespace is +# ignored. Elements are separated by commas. Data types may not be mixed. + +[array] + +key1 = [ 1, 2, 3 ] +key2 = [ "red", "yellow", "green" ] +key3 = [ [ 1, 2 ], [3, 4, 5] ] +#key4 = [ [ 1, 2 ], ["a", "b", "c"] ] # this is ok + +# Arrays can also be multiline. So in addition to ignoring whitespace, arrays +# also ignore newlines between the brackets. Terminating commas are ok before +# the closing bracket. + +key5 = [ + 1, 2, 3 +] +key6 = [ + 1, + 2, # this is ok +] + + +################################################################################ +## Array of Tables + +# These can be expressed by using a table name in double brackets. Each table +# with the same double bracketed name will be an element in the array. The +# tables are inserted in the order encountered. + +[[products]] + +name = "Hammer" +sku = 738594937 + +[[products]] + +[[products]] + +name = "Nail" +sku = 284758393 +color = "gray" + + +# You can create nested arrays of tables as well. + +[[fruit]] + name = "apple" + + [fruit.physical] + color = "red" + shape = "round" + + [[fruit.variety]] + name = "red delicious" + + [[fruit.variety]] + name = "granny smith" + +[[fruit]] + name = "banana" + + [[fruit.variety]] + name = "plantain" diff --git a/vendor/github.com/pelletier/go-toml/benchmark.yml b/vendor/github.com/pelletier/go-toml/benchmark.yml new file mode 100644 index 0000000..0bd19f0 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/benchmark.yml @@ -0,0 +1,121 @@ +--- +array: + key1: + - 1 + - 2 + - 3 + key2: + - red + - yellow + - green + key3: + - - 1 + - 2 + - - 3 + - 4 + - 5 + key4: + - - 1 + - 2 + - - a + - b + - c + key5: + - 1 + - 2 + - 3 + key6: + - 1 + - 2 +boolean: + 'False': false + 'True': true +datetime: + key1: '1979-05-27T07:32:00Z' + key2: '1979-05-27T00:32:00-07:00' + key3: '1979-05-27T00:32:00.999999-07:00' +float: + both: + key: 6.626e-34 + exponent: + key1: 5.0e+22 + key2: 1000000 + key3: -0.02 + fractional: + key1: 1 + key2: 3.1415 + key3: -0.01 + underscores: + key1: 9224617.445991227 + key2: 1.0e+100 +fruit: +- name: apple + physical: + color: red + shape: round + variety: + - name: red delicious + - name: granny smith +- name: banana + variety: + - name: plantain +integer: + key1: 99 + key2: 42 + key3: 0 + key4: -17 + underscores: + key1: 1000 + key2: 5349221 + key3: 12345 +products: +- name: Hammer + sku: 738594937 +- {} +- color: gray + name: Nail + sku: 284758393 +string: + basic: + basic: "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF." + literal: + multiline: + lines: | + The first newline is + trimmed in raw strings. + All other whitespace + is preserved. + regex2: I [dw]on't need \d{2} apples + quoted: Tom "Dubs" Preston-Werner + regex: "<\\i\\c*\\s*>" + winpath: C:\Users\nodejs\templates + winpath2: "\\\\ServerX\\admin$\\system32\\" + multiline: + continued: + key1: The quick brown fox jumps over the lazy dog. + key2: The quick brown fox jumps over the lazy dog. + key3: The quick brown fox jumps over the lazy dog. + key1: |- + One + Two + key2: |- + One + Two + key3: |- + One + Two +table: + inline: + name: + first: Tom + last: Preston-Werner + point: + x: 1 + y: 2 + key: value + subtable: + key: another value +x: + y: + z: + w: {} diff --git a/vendor/github.com/pelletier/go-toml/doc.go b/vendor/github.com/pelletier/go-toml/doc.go new file mode 100644 index 0000000..d5fd98c --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/doc.go @@ -0,0 +1,23 @@ +// Package toml is a TOML parser and manipulation library. +// +// This version supports the specification as described in +// https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md +// +// Marshaling +// +// Go-toml can marshal and unmarshal TOML documents from and to data +// structures. +// +// TOML document as a tree +// +// Go-toml can operate on a TOML document as a tree. Use one of the Load* +// functions to parse TOML data and obtain a Tree instance, then one of its +// methods to manipulate the tree. +// +// JSONPath-like queries +// +// The package github.com/pelletier/go-toml/query implements a system +// similar to JSONPath to quickly retrieve elements of a TOML document using a +// single expression. See the package documentation for more information. +// +package toml diff --git a/vendor/github.com/pelletier/go-toml/example-crlf.toml b/vendor/github.com/pelletier/go-toml/example-crlf.toml new file mode 100644 index 0000000..12950a1 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/example-crlf.toml @@ -0,0 +1,29 @@ +# This is a TOML document. Boom. + +title = "TOML Example" + +[owner] +name = "Tom Preston-Werner" +organization = "GitHub" +bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." +dob = 1979-05-27T07:32:00Z # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +connection_max = 5000 +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it diff --git a/vendor/github.com/pelletier/go-toml/example.toml b/vendor/github.com/pelletier/go-toml/example.toml new file mode 100644 index 0000000..3d902f2 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/example.toml @@ -0,0 +1,29 @@ +# This is a TOML document. Boom. + +title = "TOML Example" + +[owner] +name = "Tom Preston-Werner" +organization = "GitHub" +bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." +dob = 1979-05-27T07:32:00Z # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +connection_max = 5000 +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it diff --git a/vendor/github.com/pelletier/go-toml/fuzz.go b/vendor/github.com/pelletier/go-toml/fuzz.go new file mode 100644 index 0000000..14570c8 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/fuzz.go @@ -0,0 +1,31 @@ +// +build gofuzz + +package toml + +func Fuzz(data []byte) int { + tree, err := LoadBytes(data) + if err != nil { + if tree != nil { + panic("tree must be nil if there is an error") + } + return 0 + } + + str, err := tree.ToTomlString() + if err != nil { + if str != "" { + panic(`str must be "" if there is an error`) + } + panic(err) + } + + tree, err = Load(str) + if err != nil { + if tree != nil { + panic("tree must be nil if there is an error") + } + return 0 + } + + return 1 +} diff --git a/vendor/github.com/pelletier/go-toml/fuzz.sh b/vendor/github.com/pelletier/go-toml/fuzz.sh new file mode 100644 index 0000000..3204b4c --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/fuzz.sh @@ -0,0 +1,15 @@ +#! /bin/sh +set -eu + +go get github.com/dvyukov/go-fuzz/go-fuzz +go get github.com/dvyukov/go-fuzz/go-fuzz-build + +if [ ! -e toml-fuzz.zip ]; then + go-fuzz-build github.com/pelletier/go-toml +fi + +rm -fr fuzz +mkdir -p fuzz/corpus +cp *.toml fuzz/corpus + +go-fuzz -bin=toml-fuzz.zip -workdir=fuzz diff --git a/vendor/github.com/pelletier/go-toml/keysparsing.go b/vendor/github.com/pelletier/go-toml/keysparsing.go new file mode 100644 index 0000000..284db64 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/keysparsing.go @@ -0,0 +1,85 @@ +// Parsing keys handling both bare and quoted keys. + +package toml + +import ( + "bytes" + "errors" + "fmt" + "unicode" +) + +// Convert the bare key group string to an array. +// The input supports double quotation to allow "." inside the key name, +// but escape sequences are not supported. Lexers must unescape them beforehand. +func parseKey(key string) ([]string, error) { + groups := []string{} + var buffer bytes.Buffer + inQuotes := false + wasInQuotes := false + ignoreSpace := true + expectDot := false + + for _, char := range key { + if ignoreSpace { + if char == ' ' { + continue + } + ignoreSpace = false + } + switch char { + case '"': + if inQuotes { + groups = append(groups, buffer.String()) + buffer.Reset() + wasInQuotes = true + } + inQuotes = !inQuotes + expectDot = false + case '.': + if inQuotes { + buffer.WriteRune(char) + } else { + if !wasInQuotes { + if buffer.Len() == 0 { + return nil, errors.New("empty table key") + } + groups = append(groups, buffer.String()) + buffer.Reset() + } + ignoreSpace = true + expectDot = false + wasInQuotes = false + } + case ' ': + if inQuotes { + buffer.WriteRune(char) + } else { + expectDot = true + } + default: + if !inQuotes && !isValidBareChar(char) { + return nil, fmt.Errorf("invalid bare character: %c", char) + } + if !inQuotes && expectDot { + return nil, errors.New("what?") + } + buffer.WriteRune(char) + expectDot = false + } + } + if inQuotes { + return nil, errors.New("mismatched quotes") + } + if buffer.Len() > 0 { + groups = append(groups, buffer.String()) + } + if len(groups) == 0 { + return nil, errors.New("empty key") + } + return groups, nil +} + +func isValidBareChar(r rune) bool { + return isAlphanumeric(r) || r == '-' || unicode.IsNumber(r) +} diff --git a/vendor/github.com/pelletier/go-toml/lexer.go b/vendor/github.com/pelletier/go-toml/lexer.go new file mode 100644 index 0000000..d11de42 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/lexer.go @@ -0,0 +1,750 @@ +// TOML lexer. +// +// Written using the principles developed by Rob Pike in +// http://www.youtube.com/watch?v=HxaD_trXwRE + +package toml + +import ( + "bytes" + "errors" + "fmt" + "regexp" + "strconv" + "strings" +) + +var dateRegexp *regexp.Regexp + +// Define state functions +type tomlLexStateFn func() tomlLexStateFn + +// Define lexer +type tomlLexer struct { + inputIdx int + input []rune // Textual source + currentTokenStart int + currentTokenStop int + tokens []token + depth int + line int + col int + endbufferLine int + endbufferCol int +} + +// Basic read operations on input + +func (l *tomlLexer) read() rune { + r := l.peek() + if r == '\n' { + l.endbufferLine++ + l.endbufferCol = 1 + } else { + l.endbufferCol++ + } + l.inputIdx++ + return r +} + +func (l *tomlLexer) next() rune { + r := l.read() + + if r != eof { + l.currentTokenStop++ + } + return r +} + +func (l *tomlLexer) ignore() { + l.currentTokenStart = l.currentTokenStop + l.line = l.endbufferLine + l.col = l.endbufferCol +} + +func (l *tomlLexer) skip() { + l.next() + l.ignore() +} + +func (l *tomlLexer) fastForward(n int) { + for i := 0; i < n; i++ { + l.next() + } +} + +func (l *tomlLexer) emitWithValue(t tokenType, value string) { + l.tokens = append(l.tokens, token{ + Position: Position{l.line, l.col}, + typ: t, + val: value, + }) + l.ignore() +} + +func (l *tomlLexer) emit(t tokenType) { + l.emitWithValue(t, string(l.input[l.currentTokenStart:l.currentTokenStop])) +} + +func (l *tomlLexer) peek() rune { + if l.inputIdx >= len(l.input) { + return eof + } + return l.input[l.inputIdx] +} + +func (l *tomlLexer) peekString(size int) string { + maxIdx := len(l.input) + upperIdx := l.inputIdx + size // FIXME: potential overflow + if upperIdx > maxIdx { + upperIdx = maxIdx + } + return string(l.input[l.inputIdx:upperIdx]) +} + +func (l *tomlLexer) follow(next string) bool { + return next == l.peekString(len(next)) +} + +// Error management + +func (l *tomlLexer) errorf(format string, args ...interface{}) tomlLexStateFn { + l.tokens = append(l.tokens, token{ + Position: Position{l.line, l.col}, + typ: tokenError, + val: fmt.Sprintf(format, args...), + }) + return nil +} + +// State functions + +func (l *tomlLexer) lexVoid() tomlLexStateFn { + for { + next := l.peek() + switch next { + case '[': + return l.lexTableKey + case '#': + return l.lexComment(l.lexVoid) + case '=': + return l.lexEqual + case '\r': + fallthrough + case '\n': + l.skip() + continue + } + + if isSpace(next) { + l.skip() + } + + if l.depth > 0 { + return l.lexRvalue + } + + if isKeyStartChar(next) { + return l.lexKey + } + + if next == eof { + l.next() + break + } + } + + l.emit(tokenEOF) + return nil +} + +func (l *tomlLexer) lexRvalue() tomlLexStateFn { + for { + next := l.peek() + switch next { + case '.': + return l.errorf("cannot start float with a dot") + case '=': + return l.lexEqual + case '[': + l.depth++ + return l.lexLeftBracket + case ']': + l.depth-- + return l.lexRightBracket + case '{': + return l.lexLeftCurlyBrace + case '}': + return l.lexRightCurlyBrace + case '#': + return l.lexComment(l.lexRvalue) + case '"': + return l.lexString + case '\'': + return l.lexLiteralString + case ',': + return l.lexComma + case '\r': + fallthrough + case '\n': + l.skip() + if l.depth == 0 { + return l.lexVoid + } + return l.lexRvalue + case '_': + return l.errorf("cannot start number with underscore") + } + + if l.follow("true") { + return l.lexTrue + } + + if l.follow("false") { + return l.lexFalse + } + + if l.follow("inf") { + return l.lexInf + } + + if l.follow("nan") { + return l.lexNan + } + + if isSpace(next) { + l.skip() + continue + } + + if next == eof { + l.next() + break + } + + possibleDate := l.peekString(35) + dateMatch := dateRegexp.FindString(possibleDate) + if dateMatch != "" { + l.fastForward(len(dateMatch)) + return l.lexDate + } + + if next == '+' || next == '-' || isDigit(next) { + return l.lexNumber + } + + if isAlphanumeric(next) { + return l.lexKey + } + + return l.errorf("no value can start with %c", next) + } + + l.emit(tokenEOF) + return nil +} + +func (l *tomlLexer) lexLeftCurlyBrace() tomlLexStateFn { + l.next() + l.emit(tokenLeftCurlyBrace) + return l.lexRvalue +} + +func (l *tomlLexer) lexRightCurlyBrace() tomlLexStateFn { + l.next() + l.emit(tokenRightCurlyBrace) + return l.lexRvalue +} + +func (l *tomlLexer) lexDate() tomlLexStateFn { + l.emit(tokenDate) + return l.lexRvalue +} + +func (l *tomlLexer) lexTrue() tomlLexStateFn { + l.fastForward(4) + l.emit(tokenTrue) + return l.lexRvalue +} + +func (l *tomlLexer) lexFalse() tomlLexStateFn { + l.fastForward(5) + l.emit(tokenFalse) + return l.lexRvalue +} + +func (l *tomlLexer) lexInf() tomlLexStateFn { + l.fastForward(3) + l.emit(tokenInf) + return l.lexRvalue +} + +func (l *tomlLexer) lexNan() tomlLexStateFn { + l.fastForward(3) + l.emit(tokenNan) + return l.lexRvalue +} + +func (l *tomlLexer) lexEqual() tomlLexStateFn { + l.next() + l.emit(tokenEqual) + return l.lexRvalue +} + +func (l *tomlLexer) lexComma() tomlLexStateFn { + l.next() + l.emit(tokenComma) + return l.lexRvalue +} + +// Parse the key and emits its value without escape sequences. +// bare keys, basic string keys and literal string keys are supported. +func (l *tomlLexer) lexKey() tomlLexStateFn { + growingString := "" + + for r := l.peek(); isKeyChar(r) || r == '\n' || r == '\r'; r = l.peek() { + if r == '"' { + l.next() + str, err := l.lexStringAsString(`"`, false, true) + if err != nil { + return l.errorf(err.Error()) + } + growingString += str + l.next() + continue + } else if r == '\'' { + l.next() + str, err := l.lexLiteralStringAsString(`'`, false) + if err != nil { + return l.errorf(err.Error()) + } + growingString += str + l.next() + continue + } else if r == '\n' { + return l.errorf("keys cannot contain new lines") + } else if isSpace(r) { + break + } else if !isValidBareChar(r) { + return l.errorf("keys cannot contain %c character", r) + } + growingString += string(r) + l.next() + } + l.emitWithValue(tokenKey, growingString) + return l.lexVoid +} + +func (l *tomlLexer) lexComment(previousState tomlLexStateFn) tomlLexStateFn { + return func() tomlLexStateFn { + for next := l.peek(); next != '\n' && next != eof; next = l.peek() { + if next == '\r' && l.follow("\r\n") { + break + } + l.next() + } + l.ignore() + return previousState + } +} + +func (l *tomlLexer) lexLeftBracket() tomlLexStateFn { + l.next() + l.emit(tokenLeftBracket) + return l.lexRvalue +} + +func (l *tomlLexer) lexLiteralStringAsString(terminator string, discardLeadingNewLine bool) (string, error) { + growingString := "" + + if discardLeadingNewLine { + if l.follow("\r\n") { + l.skip() + l.skip() + } else if l.peek() == '\n' { + l.skip() + } + } + + // find end of string + for { + if l.follow(terminator) { + return growingString, nil + } + + next := l.peek() + if next == eof { + break + } + growingString += string(l.next()) + } + + return "", errors.New("unclosed string") +} + +func (l *tomlLexer) lexLiteralString() tomlLexStateFn { + l.skip() + + // handle special case for triple-quote + terminator := "'" + discardLeadingNewLine := false + if l.follow("''") { + l.skip() + l.skip() + terminator = "'''" + discardLeadingNewLine = true + } + + str, err := l.lexLiteralStringAsString(terminator, discardLeadingNewLine) + if err != nil { + return l.errorf(err.Error()) + } + + l.emitWithValue(tokenString, str) + l.fastForward(len(terminator)) + l.ignore() + return l.lexRvalue +} + +// Lex a string and return the results as a string. +// Terminator is the substring indicating the end of the token. +// The resulting string does not include the terminator. +func (l *tomlLexer) lexStringAsString(terminator string, discardLeadingNewLine, acceptNewLines bool) (string, error) { + growingString := "" + + if discardLeadingNewLine { + if l.follow("\r\n") { + l.skip() + l.skip() + } else if l.peek() == '\n' { + l.skip() + } + } + + for { + if l.follow(terminator) { + return growingString, nil + } + + if l.follow("\\") { + l.next() + switch l.peek() { + case '\r': + fallthrough + case '\n': + fallthrough + case '\t': + fallthrough + case ' ': + // skip all whitespace chars following backslash + for strings.ContainsRune("\r\n\t ", l.peek()) { + l.next() + } + case '"': + growingString += "\"" + l.next() + case 'n': + growingString += "\n" + l.next() + case 'b': + growingString += "\b" + l.next() + case 'f': + growingString += "\f" + l.next() + case '/': + growingString += "/" + l.next() + case 't': + growingString += "\t" + l.next() + case 'r': + growingString += "\r" + l.next() + case '\\': + growingString += "\\" + l.next() + case 'u': + l.next() + code := "" + for i := 0; i < 4; i++ { + c := l.peek() + if !isHexDigit(c) { + return "", errors.New("unfinished unicode escape") + } + l.next() + code = code + string(c) + } + intcode, err := strconv.ParseInt(code, 16, 32) + if err != nil { + return "", errors.New("invalid unicode escape: \\u" + code) + } + growingString += string(rune(intcode)) + case 'U': + l.next() + code := "" + for i := 0; i < 8; i++ { + c := l.peek() + if !isHexDigit(c) { + return "", errors.New("unfinished unicode escape") + } + l.next() + code = code + string(c) + } + intcode, err := strconv.ParseInt(code, 16, 64) + if err != nil { + return "", errors.New("invalid unicode escape: \\U" + code) + } + growingString += string(rune(intcode)) + default: + return "", errors.New("invalid escape sequence: \\" + string(l.peek())) + } + } else { + r := l.peek() + + if 0x00 <= r && r <= 0x1F && !(acceptNewLines && (r == '\n' || r == '\r')) { + return "", fmt.Errorf("unescaped control character %U", r) + } + l.next() + growingString += string(r) + } + + if l.peek() == eof { + break + } + } + + return "", errors.New("unclosed string") +} + +func (l *tomlLexer) lexString() tomlLexStateFn { + l.skip() + + // handle special case for triple-quote + terminator := `"` + discardLeadingNewLine := false + acceptNewLines := false + if l.follow(`""`) { + l.skip() + l.skip() + terminator = `"""` + discardLeadingNewLine = true + acceptNewLines = true + } + + str, err := l.lexStringAsString(terminator, discardLeadingNewLine, acceptNewLines) + + if err != nil { + return l.errorf(err.Error()) + } + + l.emitWithValue(tokenString, str) + l.fastForward(len(terminator)) + l.ignore() + return l.lexRvalue +} + +func (l *tomlLexer) lexTableKey() tomlLexStateFn { + l.next() + + if l.peek() == '[' { + // token '[[' signifies an array of tables + l.next() + l.emit(tokenDoubleLeftBracket) + return l.lexInsideTableArrayKey + } + // vanilla table key + l.emit(tokenLeftBracket) + return l.lexInsideTableKey +} + +// Parse the key till "]]", but only bare keys are supported +func (l *tomlLexer) lexInsideTableArrayKey() tomlLexStateFn { + for r := l.peek(); r != eof; r = l.peek() { + switch r { + case ']': + if l.currentTokenStop > l.currentTokenStart { + l.emit(tokenKeyGroupArray) + } + l.next() + if l.peek() != ']' { + break + } + l.next() + l.emit(tokenDoubleRightBracket) + return l.lexVoid + case '[': + return l.errorf("table array key cannot contain ']'") + default: + l.next() + } + } + return l.errorf("unclosed table array key") +} + +// Parse the key till "]" but only bare keys are supported +func (l *tomlLexer) lexInsideTableKey() tomlLexStateFn { + for r := l.peek(); r != eof; r = l.peek() { + switch r { + case ']': + if l.currentTokenStop > l.currentTokenStart { + l.emit(tokenKeyGroup) + } + l.next() + l.emit(tokenRightBracket) + return l.lexVoid + case '[': + return l.errorf("table key cannot contain ']'") + default: + l.next() + } + } + return l.errorf("unclosed table key") +} + +func (l *tomlLexer) lexRightBracket() tomlLexStateFn { + l.next() + l.emit(tokenRightBracket) + return l.lexRvalue +} + +type validRuneFn func(r rune) bool + +func isValidHexRune(r rune) bool { + return r >= 'a' && r <= 'f' || + r >= 'A' && r <= 'F' || + r >= '0' && r <= '9' || + r == '_' +} + +func isValidOctalRune(r rune) bool { + return r >= '0' && r <= '7' || r == '_' +} + +func isValidBinaryRune(r rune) bool { + return r == '0' || r == '1' || r == '_' +} + +func (l *tomlLexer) lexNumber() tomlLexStateFn { + r := l.peek() + + if r == '0' { + follow := l.peekString(2) + if len(follow) == 2 { + var isValidRune validRuneFn + switch follow[1] { + case 'x': + isValidRune = isValidHexRune + case 'o': + isValidRune = isValidOctalRune + case 'b': + isValidRune = isValidBinaryRune + default: + if follow[1] >= 'a' && follow[1] <= 'z' || follow[1] >= 'A' && follow[1] <= 'Z' { + return l.errorf("unknown number base: %s. possible options are x (hex) o (octal) b (binary)", string(follow[1])) + } + } + + if isValidRune != nil { + l.next() + l.next() + digitSeen := false + for { + next := l.peek() + if !isValidRune(next) { + break + } + digitSeen = true + l.next() + } + + if !digitSeen { + return l.errorf("number needs at least one digit") + } + + l.emit(tokenInteger) + + return l.lexRvalue + } + } + } + + if r == '+' || r == '-' { + l.next() + if l.follow("inf") { + return l.lexInf + } + if l.follow("nan") { + return l.lexNan + } + } + + pointSeen := false + expSeen := false + digitSeen := false + for { + next := l.peek() + if next == '.' { + if pointSeen { + return l.errorf("cannot have two dots in one float") + } + l.next() + if !isDigit(l.peek()) { + return l.errorf("float cannot end with a dot") + } + pointSeen = true + } else if next == 'e' || next == 'E' { + expSeen = true + l.next() + r := l.peek() + if r == '+' || r == '-' { + l.next() + } + } else if isDigit(next) { + digitSeen = true + l.next() + } else if next == '_' { + l.next() + } else { + break + } + if pointSeen && !digitSeen { + return l.errorf("cannot start float with a dot") + } + } + + if !digitSeen { + return l.errorf("no digit in that number") + } + if pointSeen || expSeen { + l.emit(tokenFloat) + } else { + l.emit(tokenInteger) + } + return l.lexRvalue +} + +func (l *tomlLexer) run() { + for state := l.lexVoid; state != nil; { + state = state() + } +} + +func init() { + dateRegexp = regexp.MustCompile(`^\d{1,4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,9})?(Z|[+-]\d{2}:\d{2})`) +} + +// Entry point +func lexToml(inputBytes []byte) []token { + runes := bytes.Runes(inputBytes) + l := &tomlLexer{ + input: runes, + tokens: make([]token, 0, 256), + line: 1, + col: 1, + endbufferLine: 1, + endbufferCol: 1, + } + l.run() + return l.tokens +} diff --git a/vendor/github.com/pelletier/go-toml/marshal.go b/vendor/github.com/pelletier/go-toml/marshal.go new file mode 100644 index 0000000..671da55 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/marshal.go @@ -0,0 +1,609 @@ +package toml + +import ( + "bytes" + "errors" + "fmt" + "io" + "reflect" + "strconv" + "strings" + "time" +) + +const tagKeyMultiline = "multiline" + +type tomlOpts struct { + name string + comment string + commented bool + multiline bool + include bool + omitempty bool +} + +type encOpts struct { + quoteMapKeys bool + arraysOneElementPerLine bool +} + +var encOptsDefaults = encOpts{ + quoteMapKeys: false, +} + +var timeType = reflect.TypeOf(time.Time{}) +var marshalerType = reflect.TypeOf(new(Marshaler)).Elem() + +// Check if the given marshall type maps to a Tree primitive +func isPrimitive(mtype reflect.Type) bool { + switch mtype.Kind() { + case reflect.Ptr: + return isPrimitive(mtype.Elem()) + case reflect.Bool: + return true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return true + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return true + case reflect.Float32, reflect.Float64: + return true + case reflect.String: + return true + case reflect.Struct: + return mtype == timeType || isCustomMarshaler(mtype) + default: + return false + } +} + +// Check if the given marshall type maps to a Tree slice +func isTreeSlice(mtype reflect.Type) bool { + switch mtype.Kind() { + case reflect.Slice: + return !isOtherSlice(mtype) + default: + return false + } +} + +// Check if the given marshall type maps to a non-Tree slice +func isOtherSlice(mtype reflect.Type) bool { + switch mtype.Kind() { + case reflect.Ptr: + return isOtherSlice(mtype.Elem()) + case reflect.Slice: + return isPrimitive(mtype.Elem()) || isOtherSlice(mtype.Elem()) + default: + return false + } +} + +// Check if the given marshall type maps to a Tree +func isTree(mtype reflect.Type) bool { + switch mtype.Kind() { + case reflect.Map: + return true + case reflect.Struct: + return !isPrimitive(mtype) + default: + return false + } +} + +func isCustomMarshaler(mtype reflect.Type) bool { + return mtype.Implements(marshalerType) +} + +func callCustomMarshaler(mval reflect.Value) ([]byte, error) { + return mval.Interface().(Marshaler).MarshalTOML() +} + +// Marshaler is the interface implemented by types that +// can marshal themselves into valid TOML. +type Marshaler interface { + MarshalTOML() ([]byte, error) +} + +/* +Marshal returns the TOML encoding of v. Behavior is similar to the Go json +encoder, except that there is no concept of a Marshaler interface or MarshalTOML +function for sub-structs, and currently only definite types can be marshaled +(i.e. no `interface{}`). + +The following struct annotations are supported: + + toml:"Field" Overrides the field's name to output. + omitempty When set, empty values and groups are not emitted. + comment:"comment" Emits a # comment on the same line. This supports new lines. + commented:"true" Emits the value as commented. + +Note that pointers are automatically assigned the "omitempty" option, as TOML +explicitly does not handle null values (saying instead the label should be +dropped). + +Tree structural types and corresponding marshal types: + + *Tree (*)struct, (*)map[string]interface{} + []*Tree (*)[](*)struct, (*)[](*)map[string]interface{} + []interface{} (as interface{}) (*)[]primitive, (*)[]([]interface{}) + interface{} (*)primitive + +Tree primitive types and corresponding marshal types: + + uint64 uint, uint8-uint64, pointers to same + int64 int, int8-uint64, pointers to same + float64 float32, float64, pointers to same + string string, pointers to same + bool bool, pointers to same + time.Time time.Time{}, pointers to same +*/ +func Marshal(v interface{}) ([]byte, error) { + return NewEncoder(nil).marshal(v) +} + +// Encoder writes TOML values to an output stream. +type Encoder struct { + w io.Writer + encOpts +} + +// NewEncoder returns a new encoder that writes to w. +func NewEncoder(w io.Writer) *Encoder { + return &Encoder{ + w: w, + encOpts: encOptsDefaults, + } +} + +// Encode writes the TOML encoding of v to the stream. +// +// See the documentation for Marshal for details. +func (e *Encoder) Encode(v interface{}) error { + b, err := e.marshal(v) + if err != nil { + return err + } + if _, err := e.w.Write(b); err != nil { + return err + } + return nil +} + +// QuoteMapKeys sets up the encoder to encode +// maps with string type keys with quoted TOML keys. +// +// This relieves the character limitations on map keys. +func (e *Encoder) QuoteMapKeys(v bool) *Encoder { + e.quoteMapKeys = v + return e +} + +// ArraysWithOneElementPerLine sets up the encoder to encode arrays +// with more than one element on multiple lines instead of one. +// +// For example: +// +// A = [1,2,3] +// +// Becomes +// +// A = [ +// 1, +// 2, +// 3, +// ] +func (e *Encoder) ArraysWithOneElementPerLine(v bool) *Encoder { + e.arraysOneElementPerLine = v + return e +} + +func (e *Encoder) marshal(v interface{}) ([]byte, error) { + mtype := reflect.TypeOf(v) + if mtype.Kind() != reflect.Struct { + return []byte{}, errors.New("Only a struct can be marshaled to TOML") + } + sval := reflect.ValueOf(v) + if isCustomMarshaler(mtype) { + return callCustomMarshaler(sval) + } + t, err := e.valueToTree(mtype, sval) + if err != nil { + return []byte{}, err + } + + var buf bytes.Buffer + _, err = t.writeTo(&buf, "", "", 0, e.arraysOneElementPerLine) + + return buf.Bytes(), err +} + +// Convert given marshal struct or map value to toml tree +func (e *Encoder) valueToTree(mtype reflect.Type, mval reflect.Value) (*Tree, error) { + if mtype.Kind() == reflect.Ptr { + return e.valueToTree(mtype.Elem(), mval.Elem()) + } + tval := newTree() + switch mtype.Kind() { + case reflect.Struct: + for i := 0; i < mtype.NumField(); i++ { + mtypef, mvalf := mtype.Field(i), mval.Field(i) + opts := tomlOptions(mtypef) + if opts.include && (!opts.omitempty || !isZero(mvalf)) { + val, err := e.valueToToml(mtypef.Type, mvalf) + if err != nil { + return nil, err + } + + tval.SetWithOptions(opts.name, SetOptions{ + Comment: opts.comment, + Commented: opts.commented, + Multiline: opts.multiline, + }, val) + } + } + case reflect.Map: + for _, key := range mval.MapKeys() { + mvalf := mval.MapIndex(key) + val, err := e.valueToToml(mtype.Elem(), mvalf) + if err != nil { + return nil, err + } + if e.quoteMapKeys { + keyStr, err := tomlValueStringRepresentation(key.String(), "", e.arraysOneElementPerLine) + if err != nil { + return nil, err + } + tval.SetPath([]string{keyStr}, val) + } else { + tval.Set(key.String(), val) + } + } + } + return tval, nil +} + +// Convert given marshal slice to slice of Toml trees +func (e *Encoder) valueToTreeSlice(mtype reflect.Type, mval reflect.Value) ([]*Tree, error) { + tval := make([]*Tree, mval.Len(), mval.Len()) + for i := 0; i < mval.Len(); i++ { + val, err := e.valueToTree(mtype.Elem(), mval.Index(i)) + if err != nil { + return nil, err + } + tval[i] = val + } + return tval, nil +} + +// Convert given marshal slice to slice of toml values +func (e *Encoder) valueToOtherSlice(mtype reflect.Type, mval reflect.Value) (interface{}, error) { + tval := make([]interface{}, mval.Len(), mval.Len()) + for i := 0; i < mval.Len(); i++ { + val, err := e.valueToToml(mtype.Elem(), mval.Index(i)) + if err != nil { + return nil, err + } + tval[i] = val + } + return tval, nil +} + +// Convert given marshal value to toml value +func (e *Encoder) valueToToml(mtype reflect.Type, mval reflect.Value) (interface{}, error) { + if mtype.Kind() == reflect.Ptr { + return e.valueToToml(mtype.Elem(), mval.Elem()) + } + switch { + case isCustomMarshaler(mtype): + return callCustomMarshaler(mval) + case isTree(mtype): + return e.valueToTree(mtype, mval) + case isTreeSlice(mtype): + return e.valueToTreeSlice(mtype, mval) + case isOtherSlice(mtype): + return e.valueToOtherSlice(mtype, mval) + default: + switch mtype.Kind() { + case reflect.Bool: + return mval.Bool(), nil + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return mval.Int(), nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return mval.Uint(), nil + case reflect.Float32, reflect.Float64: + return mval.Float(), nil + case reflect.String: + return mval.String(), nil + case reflect.Struct: + return mval.Interface().(time.Time), nil + default: + return nil, fmt.Errorf("Marshal can't handle %v(%v)", mtype, mtype.Kind()) + } + } +} + +// Unmarshal attempts to unmarshal the Tree into a Go struct pointed by v. +// Neither Unmarshaler interfaces nor UnmarshalTOML functions are supported for +// sub-structs, and only definite types can be unmarshaled. +func (t *Tree) Unmarshal(v interface{}) error { + d := Decoder{tval: t} + return d.unmarshal(v) +} + +// Marshal returns the TOML encoding of Tree. +// See Marshal() documentation for types mapping table. +func (t *Tree) Marshal() ([]byte, error) { + var buf bytes.Buffer + err := NewEncoder(&buf).Encode(t) + return buf.Bytes(), err +} + +// Unmarshal parses the TOML-encoded data and stores the result in the value +// pointed to by v. Behavior is similar to the Go json encoder, except that there +// is no concept of an Unmarshaler interface or UnmarshalTOML function for +// sub-structs, and currently only definite types can be unmarshaled to (i.e. no +// `interface{}`). +// +// The following struct annotations are supported: +// +// toml:"Field" Overrides the field's name to map to. +// +// See Marshal() documentation for types mapping table. +func Unmarshal(data []byte, v interface{}) error { + t, err := LoadReader(bytes.NewReader(data)) + if err != nil { + return err + } + return t.Unmarshal(v) +} + +// Decoder reads and decodes TOML values from an input stream. +type Decoder struct { + r io.Reader + tval *Tree + encOpts +} + +// NewDecoder returns a new decoder that reads from r. +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{ + r: r, + encOpts: encOptsDefaults, + } +} + +// Decode reads a TOML-encoded value from it's input +// and unmarshals it in the value pointed at by v. +// +// See the documentation for Marshal for details. +func (d *Decoder) Decode(v interface{}) error { + var err error + d.tval, err = LoadReader(d.r) + if err != nil { + return err + } + return d.unmarshal(v) +} + +func (d *Decoder) unmarshal(v interface{}) error { + mtype := reflect.TypeOf(v) + if mtype.Kind() != reflect.Ptr || mtype.Elem().Kind() != reflect.Struct { + return errors.New("Only a pointer to struct can be unmarshaled from TOML") + } + + sval, err := d.valueFromTree(mtype.Elem(), d.tval) + if err != nil { + return err + } + reflect.ValueOf(v).Elem().Set(sval) + return nil +} + +// Convert toml tree to marshal struct or map, using marshal type +func (d *Decoder) valueFromTree(mtype reflect.Type, tval *Tree) (reflect.Value, error) { + if mtype.Kind() == reflect.Ptr { + return d.unwrapPointer(mtype, tval) + } + var mval reflect.Value + switch mtype.Kind() { + case reflect.Struct: + mval = reflect.New(mtype).Elem() + for i := 0; i < mtype.NumField(); i++ { + mtypef := mtype.Field(i) + opts := tomlOptions(mtypef) + if opts.include { + baseKey := opts.name + keysToTry := []string{baseKey, strings.ToLower(baseKey), strings.ToTitle(baseKey)} + for _, key := range keysToTry { + exists := tval.Has(key) + if !exists { + continue + } + val := tval.Get(key) + mvalf, err := d.valueFromToml(mtypef.Type, val) + if err != nil { + return mval, formatError(err, tval.GetPosition(key)) + } + mval.Field(i).Set(mvalf) + break + } + } + } + case reflect.Map: + mval = reflect.MakeMap(mtype) + for _, key := range tval.Keys() { + // TODO: path splits key + val := tval.GetPath([]string{key}) + mvalf, err := d.valueFromToml(mtype.Elem(), val) + if err != nil { + return mval, formatError(err, tval.GetPosition(key)) + } + mval.SetMapIndex(reflect.ValueOf(key), mvalf) + } + } + return mval, nil +} + +// Convert toml value to marshal struct/map slice, using marshal type +func (d *Decoder) valueFromTreeSlice(mtype reflect.Type, tval []*Tree) (reflect.Value, error) { + mval := reflect.MakeSlice(mtype, len(tval), len(tval)) + for i := 0; i < len(tval); i++ { + val, err := d.valueFromTree(mtype.Elem(), tval[i]) + if err != nil { + return mval, err + } + mval.Index(i).Set(val) + } + return mval, nil +} + +// Convert toml value to marshal primitive slice, using marshal type +func (d *Decoder) valueFromOtherSlice(mtype reflect.Type, tval []interface{}) (reflect.Value, error) { + mval := reflect.MakeSlice(mtype, len(tval), len(tval)) + for i := 0; i < len(tval); i++ { + val, err := d.valueFromToml(mtype.Elem(), tval[i]) + if err != nil { + return mval, err + } + mval.Index(i).Set(val) + } + return mval, nil +} + +// Convert toml value to marshal value, using marshal type +func (d *Decoder) valueFromToml(mtype reflect.Type, tval interface{}) (reflect.Value, error) { + if mtype.Kind() == reflect.Ptr { + return d.unwrapPointer(mtype, tval) + } + + switch tval.(type) { + case *Tree: + if isTree(mtype) { + return d.valueFromTree(mtype, tval.(*Tree)) + } + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to a tree", tval, tval) + case []*Tree: + if isTreeSlice(mtype) { + return d.valueFromTreeSlice(mtype, tval.([]*Tree)) + } + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to trees", tval, tval) + case []interface{}: + if isOtherSlice(mtype) { + return d.valueFromOtherSlice(mtype, tval.([]interface{})) + } + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to a slice", tval, tval) + default: + switch mtype.Kind() { + case reflect.Bool, reflect.Struct: + val := reflect.ValueOf(tval) + // if this passes for when mtype is reflect.Struct, tval is a time.Time + if !val.Type().ConvertibleTo(mtype) { + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v", tval, tval, mtype.String()) + } + + return val.Convert(mtype), nil + case reflect.String: + val := reflect.ValueOf(tval) + // stupidly, int64 is convertible to string. So special case this. + if !val.Type().ConvertibleTo(mtype) || val.Kind() == reflect.Int64 { + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v", tval, tval, mtype.String()) + } + + return val.Convert(mtype), nil + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + val := reflect.ValueOf(tval) + if !val.Type().ConvertibleTo(mtype) { + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v", tval, tval, mtype.String()) + } + if reflect.Indirect(reflect.New(mtype)).OverflowInt(val.Int()) { + return reflect.ValueOf(nil), fmt.Errorf("%v(%T) would overflow %v", tval, tval, mtype.String()) + } + + return val.Convert(mtype), nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + val := reflect.ValueOf(tval) + if !val.Type().ConvertibleTo(mtype) { + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v", tval, tval, mtype.String()) + } + if val.Int() < 0 { + return reflect.ValueOf(nil), fmt.Errorf("%v(%T) is negative so does not fit in %v", tval, tval, mtype.String()) + } + if reflect.Indirect(reflect.New(mtype)).OverflowUint(uint64(val.Int())) { + return reflect.ValueOf(nil), fmt.Errorf("%v(%T) would overflow %v", tval, tval, mtype.String()) + } + + return val.Convert(mtype), nil + case reflect.Float32, reflect.Float64: + val := reflect.ValueOf(tval) + if !val.Type().ConvertibleTo(mtype) { + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v", tval, tval, mtype.String()) + } + if reflect.Indirect(reflect.New(mtype)).OverflowFloat(val.Float()) { + return reflect.ValueOf(nil), fmt.Errorf("%v(%T) would overflow %v", tval, tval, mtype.String()) + } + + return val.Convert(mtype), nil + default: + return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to %v(%v)", tval, tval, mtype, mtype.Kind()) + } + } +} + +func (d *Decoder) unwrapPointer(mtype reflect.Type, tval interface{}) (reflect.Value, error) { + val, err := d.valueFromToml(mtype.Elem(), tval) + if err != nil { + return reflect.ValueOf(nil), err + } + mval := reflect.New(mtype.Elem()) + mval.Elem().Set(val) + return mval, nil +} + +func tomlOptions(vf reflect.StructField) tomlOpts { + tag := vf.Tag.Get("toml") + parse := strings.Split(tag, ",") + var comment string + if c := vf.Tag.Get("comment"); c != "" { + comment = c + } + commented, _ := strconv.ParseBool(vf.Tag.Get("commented")) + multiline, _ := strconv.ParseBool(vf.Tag.Get(tagKeyMultiline)) + result := tomlOpts{name: vf.Name, comment: comment, commented: commented, multiline: multiline, include: true, omitempty: false} + if parse[0] != "" { + if parse[0] == "-" && len(parse) == 1 { + result.include = false + } else { + result.name = strings.Trim(parse[0], " ") + } + } + if vf.PkgPath != "" { + result.include = false + } + if len(parse) > 1 && strings.Trim(parse[1], " ") == "omitempty" { + result.omitempty = true + } + if vf.Type.Kind() == reflect.Ptr { + result.omitempty = true + } + return result +} + +func isZero(val reflect.Value) bool { + switch val.Type().Kind() { + case reflect.Map: + fallthrough + case reflect.Array: + fallthrough + case reflect.Slice: + return val.Len() == 0 + default: + return reflect.DeepEqual(val.Interface(), reflect.Zero(val.Type()).Interface()) + } +} + +func formatError(err error, pos Position) error { + if err.Error()[0] == '(' { // Error already contains position information + return err + } + return fmt.Errorf("%s: %s", pos, err) +} diff --git a/vendor/github.com/pelletier/go-toml/marshal_test.toml b/vendor/github.com/pelletier/go-toml/marshal_test.toml new file mode 100644 index 0000000..1c5f98e --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/marshal_test.toml @@ -0,0 +1,38 @@ +title = "TOML Marshal Testing" + +[basic] + bool = true + date = 1979-05-27T07:32:00Z + float = 123.4 + int = 5000 + string = "Bite me" + uint = 5001 + +[basic_lists] + bools = [true,false,true] + dates = [1979-05-27T07:32:00Z,1980-05-27T07:32:00Z] + floats = [12.3,45.6,78.9] + ints = [8001,8001,8002] + strings = ["One","Two","Three"] + uints = [5002,5003] + +[basic_map] + one = "one" + two = "two" + +[subdoc] + + [subdoc.first] + name = "First" + + [subdoc.second] + name = "Second" + +[[subdoclist]] + name = "List.First" + +[[subdoclist]] + name = "List.Second" + +[[subdocptrs]] + name = "Second" diff --git a/vendor/github.com/pelletier/go-toml/parser.go b/vendor/github.com/pelletier/go-toml/parser.go new file mode 100644 index 0000000..2d27599 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/parser.go @@ -0,0 +1,430 @@ +// TOML Parser. + +package toml + +import ( + "errors" + "fmt" + "math" + "reflect" + "regexp" + "strconv" + "strings" + "time" +) + +type tomlParser struct { + flowIdx int + flow []token + tree *Tree + currentTable []string + seenTableKeys []string +} + +type tomlParserStateFn func() tomlParserStateFn + +// Formats and panics an error message based on a token +func (p *tomlParser) raiseError(tok *token, msg string, args ...interface{}) { + panic(tok.Position.String() + ": " + fmt.Sprintf(msg, args...)) +} + +func (p *tomlParser) run() { + for state := p.parseStart; state != nil; { + state = state() + } +} + +func (p *tomlParser) peek() *token { + if p.flowIdx >= len(p.flow) { + return nil + } + return &p.flow[p.flowIdx] +} + +func (p *tomlParser) assume(typ tokenType) { + tok := p.getToken() + if tok == nil { + p.raiseError(tok, "was expecting token %s, but token stream is empty", tok) + } + if tok.typ != typ { + p.raiseError(tok, "was expecting token %s, but got %s instead", typ, tok) + } +} + +func (p *tomlParser) getToken() *token { + tok := p.peek() + if tok == nil { + return nil + } + p.flowIdx++ + return tok +} + +func (p *tomlParser) parseStart() tomlParserStateFn { + tok := p.peek() + + // end of stream, parsing is finished + if tok == nil { + return nil + } + + switch tok.typ { + case tokenDoubleLeftBracket: + return p.parseGroupArray + case tokenLeftBracket: + return p.parseGroup + case tokenKey: + return p.parseAssign + case tokenEOF: + return nil + default: + p.raiseError(tok, "unexpected token") + } + return nil +} + +func (p *tomlParser) parseGroupArray() tomlParserStateFn { + startToken := p.getToken() // discard the [[ + key := p.getToken() + if key.typ != tokenKeyGroupArray { + p.raiseError(key, "unexpected token %s, was expecting a table array key", key) + } + + // get or create table array element at the indicated part in the path + keys, err := parseKey(key.val) + if err != nil { + p.raiseError(key, "invalid table array key: %s", err) + } + p.tree.createSubTree(keys[:len(keys)-1], startToken.Position) // create parent entries + destTree := p.tree.GetPath(keys) + var array []*Tree + if destTree == nil { + array = make([]*Tree, 0) + } else if target, ok := destTree.([]*Tree); ok && target != nil { + array = destTree.([]*Tree) + } else { + p.raiseError(key, "key %s is already assigned and not of type table array", key) + } + p.currentTable = keys + + // add a new tree to the end of the table array + newTree := newTree() + newTree.position = startToken.Position + array = append(array, newTree) + p.tree.SetPath(p.currentTable, array) + + // remove all keys that were children of this table array + prefix := key.val + "." + found := false + for ii := 0; ii < len(p.seenTableKeys); { + tableKey := p.seenTableKeys[ii] + if strings.HasPrefix(tableKey, prefix) { + p.seenTableKeys = append(p.seenTableKeys[:ii], p.seenTableKeys[ii+1:]...) + } else { + found = (tableKey == key.val) + ii++ + } + } + + // keep this key name from use by other kinds of assignments + if !found { + p.seenTableKeys = append(p.seenTableKeys, key.val) + } + + // move to next parser state + p.assume(tokenDoubleRightBracket) + return p.parseStart +} + +func (p *tomlParser) parseGroup() tomlParserStateFn { + startToken := p.getToken() // discard the [ + key := p.getToken() + if key.typ != tokenKeyGroup { + p.raiseError(key, "unexpected token %s, was expecting a table key", key) + } + for _, item := range p.seenTableKeys { + if item == key.val { + p.raiseError(key, "duplicated tables") + } + } + + p.seenTableKeys = append(p.seenTableKeys, key.val) + keys, err := parseKey(key.val) + if err != nil { + p.raiseError(key, "invalid table array key: %s", err) + } + if err := p.tree.createSubTree(keys, startToken.Position); err != nil { + p.raiseError(key, "%s", err) + } + p.assume(tokenRightBracket) + p.currentTable = keys + return p.parseStart +} + +func (p *tomlParser) parseAssign() tomlParserStateFn { + key := p.getToken() + p.assume(tokenEqual) + + value := p.parseRvalue() + var tableKey []string + if len(p.currentTable) > 0 { + tableKey = p.currentTable + } else { + tableKey = []string{} + } + + // find the table to assign, looking out for arrays of tables + var targetNode *Tree + switch node := p.tree.GetPath(tableKey).(type) { + case []*Tree: + targetNode = node[len(node)-1] + case *Tree: + targetNode = node + default: + p.raiseError(key, "Unknown table type for path: %s", + strings.Join(tableKey, ".")) + } + + // assign value to the found table + keyVals := []string{key.val} + if len(keyVals) != 1 { + p.raiseError(key, "Invalid key") + } + keyVal := keyVals[0] + localKey := []string{keyVal} + finalKey := append(tableKey, keyVal) + if targetNode.GetPath(localKey) != nil { + p.raiseError(key, "The following key was defined twice: %s", + strings.Join(finalKey, ".")) + } + var toInsert interface{} + + switch value.(type) { + case *Tree, []*Tree: + toInsert = value + default: + toInsert = &tomlValue{value: value, position: key.Position} + } + targetNode.values[keyVal] = toInsert + return p.parseStart +} + +var numberUnderscoreInvalidRegexp *regexp.Regexp +var hexNumberUnderscoreInvalidRegexp *regexp.Regexp + +func numberContainsInvalidUnderscore(value string) error { + if numberUnderscoreInvalidRegexp.MatchString(value) { + return errors.New("invalid use of _ in number") + } + return nil +} + +func hexNumberContainsInvalidUnderscore(value string) error { + if hexNumberUnderscoreInvalidRegexp.MatchString(value) { + return errors.New("invalid use of _ in hex number") + } + return nil +} + +func cleanupNumberToken(value string) string { + cleanedVal := strings.Replace(value, "_", "", -1) + return cleanedVal +} + +func (p *tomlParser) parseRvalue() interface{} { + tok := p.getToken() + if tok == nil || tok.typ == tokenEOF { + p.raiseError(tok, "expecting a value") + } + + switch tok.typ { + case tokenString: + return tok.val + case tokenTrue: + return true + case tokenFalse: + return false + case tokenInf: + if tok.val[0] == '-' { + return math.Inf(-1) + } + return math.Inf(1) + case tokenNan: + return math.NaN() + case tokenInteger: + cleanedVal := cleanupNumberToken(tok.val) + var err error + var val int64 + if len(cleanedVal) >= 3 && cleanedVal[0] == '0' { + switch cleanedVal[1] { + case 'x': + err = hexNumberContainsInvalidUnderscore(tok.val) + if err != nil { + p.raiseError(tok, "%s", err) + } + val, err = strconv.ParseInt(cleanedVal[2:], 16, 64) + case 'o': + err = numberContainsInvalidUnderscore(tok.val) + if err != nil { + p.raiseError(tok, "%s", err) + } + val, err = strconv.ParseInt(cleanedVal[2:], 8, 64) + case 'b': + err = numberContainsInvalidUnderscore(tok.val) + if err != nil { + p.raiseError(tok, "%s", err) + } + val, err = strconv.ParseInt(cleanedVal[2:], 2, 64) + default: + panic("invalid base") // the lexer should catch this first + } + } else { + err = numberContainsInvalidUnderscore(tok.val) + if err != nil { + p.raiseError(tok, "%s", err) + } + val, err = strconv.ParseInt(cleanedVal, 10, 64) + } + if err != nil { + p.raiseError(tok, "%s", err) + } + return val + case tokenFloat: + err := numberContainsInvalidUnderscore(tok.val) + if err != nil { + p.raiseError(tok, "%s", err) + } + cleanedVal := cleanupNumberToken(tok.val) + val, err := strconv.ParseFloat(cleanedVal, 64) + if err != nil { + p.raiseError(tok, "%s", err) + } + return val + case tokenDate: + val, err := time.ParseInLocation(time.RFC3339Nano, tok.val, time.UTC) + if err != nil { + p.raiseError(tok, "%s", err) + } + return val + case tokenLeftBracket: + return p.parseArray() + case tokenLeftCurlyBrace: + return p.parseInlineTable() + case tokenEqual: + p.raiseError(tok, "cannot have multiple equals for the same key") + case tokenError: + p.raiseError(tok, "%s", tok) + } + + p.raiseError(tok, "never reached") + + return nil +} + +func tokenIsComma(t *token) bool { + return t != nil && t.typ == tokenComma +} + +func (p *tomlParser) parseInlineTable() *Tree { + tree := newTree() + var previous *token +Loop: + for { + follow := p.peek() + if follow == nil || follow.typ == tokenEOF { + p.raiseError(follow, "unterminated inline table") + } + switch follow.typ { + case tokenRightCurlyBrace: + p.getToken() + break Loop + case tokenKey: + if !tokenIsComma(previous) && previous != nil { + p.raiseError(follow, "comma expected between fields in inline table") + } + key := p.getToken() + p.assume(tokenEqual) + value := p.parseRvalue() + tree.Set(key.val, value) + case tokenComma: + if previous == nil { + p.raiseError(follow, "inline table cannot start with a comma") + } + if tokenIsComma(previous) { + p.raiseError(follow, "need field between two commas in inline table") + } + p.getToken() + default: + p.raiseError(follow, "unexpected token type in inline table: %s", follow.String()) + } + previous = follow + } + if tokenIsComma(previous) { + p.raiseError(previous, "trailing comma at the end of inline table") + } + return tree +} + +func (p *tomlParser) parseArray() interface{} { + var array []interface{} + arrayType := reflect.TypeOf(nil) + for { + follow := p.peek() + if follow == nil || follow.typ == tokenEOF { + p.raiseError(follow, "unterminated array") + } + if follow.typ == tokenRightBracket { + p.getToken() + break + } + val := p.parseRvalue() + if arrayType == nil { + arrayType = reflect.TypeOf(val) + } + if reflect.TypeOf(val) != arrayType { + p.raiseError(follow, "mixed types in array") + } + array = append(array, val) + follow = p.peek() + if follow == nil || follow.typ == tokenEOF { + p.raiseError(follow, "unterminated array") + } + if follow.typ != tokenRightBracket && follow.typ != tokenComma { + p.raiseError(follow, "missing comma") + } + if follow.typ == tokenComma { + p.getToken() + } + } + // An array of Trees is actually an array of inline + // tables, which is a shorthand for a table array. If the + // array was not converted from []interface{} to []*Tree, + // the two notations would not be equivalent. + if arrayType == reflect.TypeOf(newTree()) { + tomlArray := make([]*Tree, len(array)) + for i, v := range array { + tomlArray[i] = v.(*Tree) + } + return tomlArray + } + return array +} + +func parseToml(flow []token) *Tree { + result := newTree() + result.position = Position{1, 1} + parser := &tomlParser{ + flowIdx: 0, + flow: flow, + tree: result, + currentTable: make([]string, 0), + seenTableKeys: make([]string, 0), + } + parser.run() + return result +} + +func init() { + numberUnderscoreInvalidRegexp = regexp.MustCompile(`([^\d]_|_[^\d])|_$|^_`) + hexNumberUnderscoreInvalidRegexp = regexp.MustCompile(`(^0x_)|([^\da-f]_|_[^\da-f])|_$|^_`) +} diff --git a/vendor/github.com/pelletier/go-toml/position.go b/vendor/github.com/pelletier/go-toml/position.go new file mode 100644 index 0000000..c17bff8 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/position.go @@ -0,0 +1,29 @@ +// Position support for go-toml + +package toml + +import ( + "fmt" +) + +// Position of a document element within a TOML document. +// +// Line and Col are both 1-indexed positions for the element's line number and +// column number, respectively. Values of zero or less will cause Invalid(), +// to return true. +type Position struct { + Line int // line within the document + Col int // column within the line +} + +// String representation of the position. +// Displays 1-indexed line and column numbers. +func (p Position) String() string { + return fmt.Sprintf("(%d, %d)", p.Line, p.Col) +} + +// Invalid returns whether or not the position is valid (i.e. with negative or +// null values) +func (p Position) Invalid() bool { + return p.Line <= 0 || p.Col <= 0 +} diff --git a/vendor/github.com/pelletier/go-toml/test.sh b/vendor/github.com/pelletier/go-toml/test.sh new file mode 100644 index 0000000..ba6adf3 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/test.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# fail out of the script if anything here fails +set -e +set -o pipefail + +# set the path to the present working directory +export GOPATH=`pwd` + +function git_clone() { + path=$1 + branch=$2 + version=$3 + if [ ! -d "src/$path" ]; then + mkdir -p src/$path + git clone https://$path.git src/$path + fi + pushd src/$path + git checkout "$branch" + git reset --hard "$version" + popd +} + +# Remove potential previous runs +rm -rf src test_program_bin toml-test + +go get github.com/pelletier/go-buffruneio +go get github.com/davecgh/go-spew/spew +go get gopkg.in/yaml.v2 +go get github.com/BurntSushi/toml + +# get code for BurntSushi TOML validation +# pinning all to 'HEAD' for version 0.3.x work (TODO: pin to commit hash when tests stabilize) +git_clone github.com/BurntSushi/toml master HEAD +git_clone github.com/BurntSushi/toml-test master HEAD #was: 0.2.0 HEAD + +# build the BurntSushi test application +go build -o toml-test github.com/BurntSushi/toml-test + +# vendorize the current lib for testing +# NOTE: this basically mocks an install without having to go back out to github for code +mkdir -p src/github.com/pelletier/go-toml/cmd +mkdir -p src/github.com/pelletier/go-toml/query +cp *.go *.toml src/github.com/pelletier/go-toml +cp -R cmd/* src/github.com/pelletier/go-toml/cmd +cp -R query/* src/github.com/pelletier/go-toml/query +go build -o test_program_bin src/github.com/pelletier/go-toml/cmd/test_program.go + +# Run basic unit tests +go test github.com/pelletier/go-toml -covermode=count -coverprofile=coverage.out +go test github.com/pelletier/go-toml/cmd/tomljson +go test github.com/pelletier/go-toml/query + +# run the entire BurntSushi test suite +if [[ $# -eq 0 ]] ; then + echo "Running all BurntSushi tests" + ./toml-test ./test_program_bin | tee test_out +else + # run a specific test + test=$1 + test_path='src/github.com/BurntSushi/toml-test/tests' + valid_test="$test_path/valid/$test" + invalid_test="$test_path/invalid/$test" + + if [ -e "$valid_test.toml" ]; then + echo "Valid Test TOML for $test:" + echo "====" + cat "$valid_test.toml" + + echo "Valid Test JSON for $test:" + echo "====" + cat "$valid_test.json" + + echo "Go-TOML Output for $test:" + echo "====" + cat "$valid_test.toml" | ./test_program_bin + fi + + if [ -e "$invalid_test.toml" ]; then + echo "Invalid Test TOML for $test:" + echo "====" + cat "$invalid_test.toml" + + echo "Go-TOML Output for $test:" + echo "====" + echo "go-toml Output:" + cat "$invalid_test.toml" | ./test_program_bin + fi +fi diff --git a/vendor/github.com/pelletier/go-toml/token.go b/vendor/github.com/pelletier/go-toml/token.go new file mode 100644 index 0000000..1a90813 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/token.go @@ -0,0 +1,144 @@ +package toml + +import ( + "fmt" + "strconv" + "unicode" +) + +// Define tokens +type tokenType int + +const ( + eof = -(iota + 1) +) + +const ( + tokenError tokenType = iota + tokenEOF + tokenComment + tokenKey + tokenString + tokenInteger + tokenTrue + tokenFalse + tokenFloat + tokenInf + tokenNan + tokenEqual + tokenLeftBracket + tokenRightBracket + tokenLeftCurlyBrace + tokenRightCurlyBrace + tokenLeftParen + tokenRightParen + tokenDoubleLeftBracket + tokenDoubleRightBracket + tokenDate + tokenKeyGroup + tokenKeyGroupArray + tokenComma + tokenColon + tokenDollar + tokenStar + tokenQuestion + tokenDot + tokenDotDot + tokenEOL +) + +var tokenTypeNames = []string{ + "Error", + "EOF", + "Comment", + "Key", + "String", + "Integer", + "True", + "False", + "Float", + "Inf", + "NaN", + "=", + "[", + "]", + "{", + "}", + "(", + ")", + "]]", + "[[", + "Date", + "KeyGroup", + "KeyGroupArray", + ",", + ":", + "$", + "*", + "?", + ".", + "..", + "EOL", +} + +type token struct { + Position + typ tokenType + val string +} + +func (tt tokenType) String() string { + idx := int(tt) + if idx < len(tokenTypeNames) { + return tokenTypeNames[idx] + } + return "Unknown" +} + +func (t token) Int() int { + if result, err := strconv.Atoi(t.val); err != nil { + panic(err) + } else { + return result + } +} + +func (t token) String() string { + switch t.typ { + case tokenEOF: + return "EOF" + case tokenError: + return t.val + } + + return fmt.Sprintf("%q", t.val) +} + +func isSpace(r rune) bool { + return r == ' ' || r == '\t' +} + +func isAlphanumeric(r rune) bool { + return unicode.IsLetter(r) || r == '_' +} + +func isKeyChar(r rune) bool { + // Keys start with the first character that isn't whitespace or [ and end + // with the last non-whitespace character before the equals sign. Keys + // cannot contain a # character." + return !(r == '\r' || r == '\n' || r == eof || r == '=') +} + +func isKeyStartChar(r rune) bool { + return !(isSpace(r) || r == '\r' || r == '\n' || r == eof || r == '[') +} + +func isDigit(r rune) bool { + return unicode.IsNumber(r) +} + +func isHexDigit(r rune) bool { + return isDigit(r) || + (r >= 'a' && r <= 'f') || + (r >= 'A' && r <= 'F') +} diff --git a/vendor/github.com/pelletier/go-toml/toml.go b/vendor/github.com/pelletier/go-toml/toml.go new file mode 100644 index 0000000..98c185a --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/toml.go @@ -0,0 +1,367 @@ +package toml + +import ( + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "runtime" + "strings" +) + +type tomlValue struct { + value interface{} // string, int64, uint64, float64, bool, time.Time, [] of any of this list + comment string + commented bool + multiline bool + position Position +} + +// Tree is the result of the parsing of a TOML file. +type Tree struct { + values map[string]interface{} // string -> *tomlValue, *Tree, []*Tree + comment string + commented bool + position Position +} + +func newTree() *Tree { + return &Tree{ + values: make(map[string]interface{}), + position: Position{}, + } +} + +// TreeFromMap initializes a new Tree object using the given map. +func TreeFromMap(m map[string]interface{}) (*Tree, error) { + result, err := toTree(m) + if err != nil { + return nil, err + } + return result.(*Tree), nil +} + +// Position returns the position of the tree. +func (t *Tree) Position() Position { + return t.position +} + +// Has returns a boolean indicating if the given key exists. +func (t *Tree) Has(key string) bool { + if key == "" { + return false + } + return t.HasPath(strings.Split(key, ".")) +} + +// HasPath returns true if the given path of keys exists, false otherwise. +func (t *Tree) HasPath(keys []string) bool { + return t.GetPath(keys) != nil +} + +// Keys returns the keys of the toplevel tree (does not recurse). +func (t *Tree) Keys() []string { + keys := make([]string, len(t.values)) + i := 0 + for k := range t.values { + keys[i] = k + i++ + } + return keys +} + +// Get the value at key in the Tree. +// Key is a dot-separated path (e.g. a.b.c) without single/double quoted strings. +// If you need to retrieve non-bare keys, use GetPath. +// Returns nil if the path does not exist in the tree. +// If keys is of length zero, the current tree is returned. +func (t *Tree) Get(key string) interface{} { + if key == "" { + return t + } + return t.GetPath(strings.Split(key, ".")) +} + +// GetPath returns the element in the tree indicated by 'keys'. +// If keys is of length zero, the current tree is returned. +func (t *Tree) GetPath(keys []string) interface{} { + if len(keys) == 0 { + return t + } + subtree := t + for _, intermediateKey := range keys[:len(keys)-1] { + value, exists := subtree.values[intermediateKey] + if !exists { + return nil + } + switch node := value.(type) { + case *Tree: + subtree = node + case []*Tree: + // go to most recent element + if len(node) == 0 { + return nil + } + subtree = node[len(node)-1] + default: + return nil // cannot navigate through other node types + } + } + // branch based on final node type + switch node := subtree.values[keys[len(keys)-1]].(type) { + case *tomlValue: + return node.value + default: + return node + } +} + +// GetPosition returns the position of the given key. +func (t *Tree) GetPosition(key string) Position { + if key == "" { + return t.position + } + return t.GetPositionPath(strings.Split(key, ".")) +} + +// GetPositionPath returns the element in the tree indicated by 'keys'. +// If keys is of length zero, the current tree is returned. +func (t *Tree) GetPositionPath(keys []string) Position { + if len(keys) == 0 { + return t.position + } + subtree := t + for _, intermediateKey := range keys[:len(keys)-1] { + value, exists := subtree.values[intermediateKey] + if !exists { + return Position{0, 0} + } + switch node := value.(type) { + case *Tree: + subtree = node + case []*Tree: + // go to most recent element + if len(node) == 0 { + return Position{0, 0} + } + subtree = node[len(node)-1] + default: + return Position{0, 0} + } + } + // branch based on final node type + switch node := subtree.values[keys[len(keys)-1]].(type) { + case *tomlValue: + return node.position + case *Tree: + return node.position + case []*Tree: + // go to most recent element + if len(node) == 0 { + return Position{0, 0} + } + return node[len(node)-1].position + default: + return Position{0, 0} + } +} + +// GetDefault works like Get but with a default value +func (t *Tree) GetDefault(key string, def interface{}) interface{} { + val := t.Get(key) + if val == nil { + return def + } + return val +} + +// SetOptions arguments are supplied to the SetWithOptions and SetPathWithOptions functions to modify marshalling behaviour. +// The default values within the struct are valid default options. +type SetOptions struct { + Comment string + Commented bool + Multiline bool +} + +// SetWithOptions is the same as Set, but allows you to provide formatting +// instructions to the key, that will be used by Marshal(). +func (t *Tree) SetWithOptions(key string, opts SetOptions, value interface{}) { + t.SetPathWithOptions(strings.Split(key, "."), opts, value) +} + +// SetPathWithOptions is the same as SetPath, but allows you to provide +// formatting instructions to the key, that will be reused by Marshal(). +func (t *Tree) SetPathWithOptions(keys []string, opts SetOptions, value interface{}) { + subtree := t + for _, intermediateKey := range keys[:len(keys)-1] { + nextTree, exists := subtree.values[intermediateKey] + if !exists { + nextTree = newTree() + subtree.values[intermediateKey] = nextTree // add new element here + } + switch node := nextTree.(type) { + case *Tree: + subtree = node + case []*Tree: + // go to most recent element + if len(node) == 0 { + // create element if it does not exist + subtree.values[intermediateKey] = append(node, newTree()) + } + subtree = node[len(node)-1] + } + } + + var toInsert interface{} + + switch value.(type) { + case *Tree: + tt := value.(*Tree) + tt.comment = opts.Comment + toInsert = value + case []*Tree: + toInsert = value + case *tomlValue: + tt := value.(*tomlValue) + tt.comment = opts.Comment + toInsert = tt + default: + toInsert = &tomlValue{value: value, comment: opts.Comment, commented: opts.Commented, multiline: opts.Multiline} + } + + subtree.values[keys[len(keys)-1]] = toInsert +} + +// Set an element in the tree. +// Key is a dot-separated path (e.g. a.b.c). +// Creates all necessary intermediate trees, if needed. +func (t *Tree) Set(key string, value interface{}) { + t.SetWithComment(key, "", false, value) +} + +// SetWithComment is the same as Set, but allows you to provide comment +// information to the key, that will be reused by Marshal(). +func (t *Tree) SetWithComment(key string, comment string, commented bool, value interface{}) { + t.SetPathWithComment(strings.Split(key, "."), comment, commented, value) +} + +// SetPath sets an element in the tree. +// Keys is an array of path elements (e.g. {"a","b","c"}). +// Creates all necessary intermediate trees, if needed. +func (t *Tree) SetPath(keys []string, value interface{}) { + t.SetPathWithComment(keys, "", false, value) +} + +// SetPathWithComment is the same as SetPath, but allows you to provide comment +// information to the key, that will be reused by Marshal(). +func (t *Tree) SetPathWithComment(keys []string, comment string, commented bool, value interface{}) { + subtree := t + for _, intermediateKey := range keys[:len(keys)-1] { + nextTree, exists := subtree.values[intermediateKey] + if !exists { + nextTree = newTree() + subtree.values[intermediateKey] = nextTree // add new element here + } + switch node := nextTree.(type) { + case *Tree: + subtree = node + case []*Tree: + // go to most recent element + if len(node) == 0 { + // create element if it does not exist + subtree.values[intermediateKey] = append(node, newTree()) + } + subtree = node[len(node)-1] + } + } + + var toInsert interface{} + + switch value.(type) { + case *Tree: + tt := value.(*Tree) + tt.comment = comment + toInsert = value + case []*Tree: + toInsert = value + case *tomlValue: + tt := value.(*tomlValue) + tt.comment = comment + toInsert = tt + default: + toInsert = &tomlValue{value: value, comment: comment, commented: commented} + } + + subtree.values[keys[len(keys)-1]] = toInsert +} + +// createSubTree takes a tree and a key and create the necessary intermediate +// subtrees to create a subtree at that point. In-place. +// +// e.g. passing a.b.c will create (assuming tree is empty) tree[a], tree[a][b] +// and tree[a][b][c] +// +// Returns nil on success, error object on failure +func (t *Tree) createSubTree(keys []string, pos Position) error { + subtree := t + for _, intermediateKey := range keys { + nextTree, exists := subtree.values[intermediateKey] + if !exists { + tree := newTree() + tree.position = pos + subtree.values[intermediateKey] = tree + nextTree = tree + } + + switch node := nextTree.(type) { + case []*Tree: + subtree = node[len(node)-1] + case *Tree: + subtree = node + default: + return fmt.Errorf("unknown type for path %s (%s): %T (%#v)", + strings.Join(keys, "."), intermediateKey, nextTree, nextTree) + } + } + return nil +} + +// LoadBytes creates a Tree from a []byte. +func LoadBytes(b []byte) (tree *Tree, err error) { + defer func() { + if r := recover(); r != nil { + if _, ok := r.(runtime.Error); ok { + panic(r) + } + err = errors.New(r.(string)) + } + }() + tree = parseToml(lexToml(b)) + return +} + +// LoadReader creates a Tree from any io.Reader. +func LoadReader(reader io.Reader) (tree *Tree, err error) { + inputBytes, err := ioutil.ReadAll(reader) + if err != nil { + return + } + tree, err = LoadBytes(inputBytes) + return +} + +// Load creates a Tree from a string. +func Load(content string) (tree *Tree, err error) { + return LoadBytes([]byte(content)) +} + +// LoadFile creates a Tree from a file. +func LoadFile(path string) (tree *Tree, err error) { + file, err := os.Open(path) + if err != nil { + return nil, err + } + defer file.Close() + return LoadReader(file) +} diff --git a/vendor/github.com/pelletier/go-toml/tomltree_create.go b/vendor/github.com/pelletier/go-toml/tomltree_create.go new file mode 100644 index 0000000..79610e9 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/tomltree_create.go @@ -0,0 +1,142 @@ +package toml + +import ( + "fmt" + "reflect" + "time" +) + +var kindToType = [reflect.String + 1]reflect.Type{ + reflect.Bool: reflect.TypeOf(true), + reflect.String: reflect.TypeOf(""), + reflect.Float32: reflect.TypeOf(float64(1)), + reflect.Float64: reflect.TypeOf(float64(1)), + reflect.Int: reflect.TypeOf(int64(1)), + reflect.Int8: reflect.TypeOf(int64(1)), + reflect.Int16: reflect.TypeOf(int64(1)), + reflect.Int32: reflect.TypeOf(int64(1)), + reflect.Int64: reflect.TypeOf(int64(1)), + reflect.Uint: reflect.TypeOf(uint64(1)), + reflect.Uint8: reflect.TypeOf(uint64(1)), + reflect.Uint16: reflect.TypeOf(uint64(1)), + reflect.Uint32: reflect.TypeOf(uint64(1)), + reflect.Uint64: reflect.TypeOf(uint64(1)), +} + +// typeFor returns a reflect.Type for a reflect.Kind, or nil if none is found. +// supported values: +// string, bool, int64, uint64, float64, time.Time, int, int8, int16, int32, uint, uint8, uint16, uint32, float32 +func typeFor(k reflect.Kind) reflect.Type { + if k > 0 && int(k) < len(kindToType) { + return kindToType[k] + } + return nil +} + +func simpleValueCoercion(object interface{}) (interface{}, error) { + switch original := object.(type) { + case string, bool, int64, uint64, float64, time.Time: + return original, nil + case int: + return int64(original), nil + case int8: + return int64(original), nil + case int16: + return int64(original), nil + case int32: + return int64(original), nil + case uint: + return uint64(original), nil + case uint8: + return uint64(original), nil + case uint16: + return uint64(original), nil + case uint32: + return uint64(original), nil + case float32: + return float64(original), nil + case fmt.Stringer: + return original.String(), nil + default: + return nil, fmt.Errorf("cannot convert type %T to Tree", object) + } +} + +func sliceToTree(object interface{}) (interface{}, error) { + // arrays are a bit tricky, since they can represent either a + // collection of simple values, which is represented by one + // *tomlValue, or an array of tables, which is represented by an + // array of *Tree. + + // holding the assumption that this function is called from toTree only when value.Kind() is Array or Slice + value := reflect.ValueOf(object) + insideType := value.Type().Elem() + length := value.Len() + if length > 0 { + insideType = reflect.ValueOf(value.Index(0).Interface()).Type() + } + if insideType.Kind() == reflect.Map { + // this is considered as an array of tables + tablesArray := make([]*Tree, 0, length) + for i := 0; i < length; i++ { + table := value.Index(i) + tree, err := toTree(table.Interface()) + if err != nil { + return nil, err + } + tablesArray = append(tablesArray, tree.(*Tree)) + } + return tablesArray, nil + } + + sliceType := typeFor(insideType.Kind()) + if sliceType == nil { + sliceType = insideType + } + + arrayValue := reflect.MakeSlice(reflect.SliceOf(sliceType), 0, length) + + for i := 0; i < length; i++ { + val := value.Index(i).Interface() + simpleValue, err := simpleValueCoercion(val) + if err != nil { + return nil, err + } + arrayValue = reflect.Append(arrayValue, reflect.ValueOf(simpleValue)) + } + return &tomlValue{value: arrayValue.Interface(), position: Position{}}, nil +} + +func toTree(object interface{}) (interface{}, error) { + value := reflect.ValueOf(object) + + if value.Kind() == reflect.Map { + values := map[string]interface{}{} + keys := value.MapKeys() + for _, key := range keys { + if key.Kind() != reflect.String { + if _, ok := key.Interface().(string); !ok { + return nil, fmt.Errorf("map key needs to be a string, not %T (%v)", key.Interface(), key.Kind()) + } + } + + v := value.MapIndex(key) + newValue, err := toTree(v.Interface()) + if err != nil { + return nil, err + } + values[key.String()] = newValue + } + return &Tree{values: values, position: Position{}}, nil + } + + if value.Kind() == reflect.Array || value.Kind() == reflect.Slice { + return sliceToTree(object) + } + + simpleValue, err := simpleValueCoercion(object) + if err != nil { + return nil, err + } + return &tomlValue{value: simpleValue, position: Position{}}, nil +} diff --git a/vendor/github.com/pelletier/go-toml/tomltree_write.go b/vendor/github.com/pelletier/go-toml/tomltree_write.go new file mode 100644 index 0000000..e4049e2 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/tomltree_write.go @@ -0,0 +1,333 @@ +package toml + +import ( + "bytes" + "fmt" + "io" + "math" + "reflect" + "sort" + "strconv" + "strings" + "time" +) + +// Encodes a string to a TOML-compliant multi-line string value +// This function is a clone of the existing encodeTomlString function, except that whitespace characters +// are preserved. Quotation marks and backslashes are also not escaped. +func encodeMultilineTomlString(value string) string { + var b bytes.Buffer + + for _, rr := range value { + switch rr { + case '\b': + b.WriteString(`\b`) + case '\t': + b.WriteString("\t") + case '\n': + b.WriteString("\n") + case '\f': + b.WriteString(`\f`) + case '\r': + b.WriteString("\r") + case '"': + b.WriteString(`"`) + case '\\': + b.WriteString(`\`) + default: + intRr := uint16(rr) + if intRr < 0x001F { + b.WriteString(fmt.Sprintf("\\u%0.4X", intRr)) + } else { + b.WriteRune(rr) + } + } + } + return b.String() +} + +// Encodes a string to a TOML-compliant string value +func encodeTomlString(value string) string { + var b bytes.Buffer + + for _, rr := range value { + switch rr { + case '\b': + b.WriteString(`\b`) + case '\t': + b.WriteString(`\t`) + case '\n': + b.WriteString(`\n`) + case '\f': + b.WriteString(`\f`) + case '\r': + b.WriteString(`\r`) + case '"': + b.WriteString(`\"`) + case '\\': + b.WriteString(`\\`) + default: + intRr := uint16(rr) + if intRr < 0x001F { + b.WriteString(fmt.Sprintf("\\u%0.4X", intRr)) + } else { + b.WriteRune(rr) + } + } + } + return b.String() +} + +func tomlValueStringRepresentation(v interface{}, indent string, arraysOneElementPerLine bool) (string, error) { + // this interface check is added to dereference the change made in the writeTo function. + // That change was made to allow this function to see formatting options. + tv, ok := v.(*tomlValue) + if ok { + v = tv.value + } else { + tv = &tomlValue{} + } + + switch value := v.(type) { + case uint64: + return strconv.FormatUint(value, 10), nil + case int64: + return strconv.FormatInt(value, 10), nil + case float64: + // Ensure a round float does contain a decimal point. Otherwise feeding + // the output back to the parser would convert to an integer. + if math.Trunc(value) == value { + return strings.ToLower(strconv.FormatFloat(value, 'f', 1, 32)), nil + } + return strings.ToLower(strconv.FormatFloat(value, 'f', -1, 32)), nil + case string: + if tv.multiline { + return "\"\"\"\n" + encodeMultilineTomlString(value) + "\"\"\"", nil + } + return "\"" + encodeTomlString(value) + "\"", nil + case []byte: + b, _ := v.([]byte) + return tomlValueStringRepresentation(string(b), indent, arraysOneElementPerLine) + case bool: + if value { + return "true", nil + } + return "false", nil + case time.Time: + return value.Format(time.RFC3339), nil + case nil: + return "", nil + } + + rv := reflect.ValueOf(v) + + if rv.Kind() == reflect.Slice { + var values []string + for i := 0; i < rv.Len(); i++ { + item := rv.Index(i).Interface() + itemRepr, err := tomlValueStringRepresentation(item, indent, arraysOneElementPerLine) + if err != nil { + return "", err + } + values = append(values, itemRepr) + } + if arraysOneElementPerLine && len(values) > 1 { + stringBuffer := bytes.Buffer{} + valueIndent := indent + ` ` // TODO: move that to a shared encoder state + + stringBuffer.WriteString("[\n") + + for _, value := range values { + stringBuffer.WriteString(valueIndent) + stringBuffer.WriteString(value) + stringBuffer.WriteString(`,`) + stringBuffer.WriteString("\n") + } + + stringBuffer.WriteString(indent + "]") + + return stringBuffer.String(), nil + } + return "[" + strings.Join(values, ",") + "]", nil + } + return "", fmt.Errorf("unsupported value type %T: %v", v, v) +} + +func (t *Tree) writeTo(w io.Writer, indent, keyspace string, bytesCount int64, arraysOneElementPerLine bool) (int64, error) { + simpleValuesKeys := make([]string, 0) + complexValuesKeys := make([]string, 0) + + for k := range t.values { + v := t.values[k] + switch v.(type) { + case *Tree, []*Tree: + complexValuesKeys = append(complexValuesKeys, k) + default: + simpleValuesKeys = append(simpleValuesKeys, k) + } + } + + sort.Strings(simpleValuesKeys) + sort.Strings(complexValuesKeys) + + for _, k := range simpleValuesKeys { + v, ok := t.values[k].(*tomlValue) + if !ok { + return bytesCount, fmt.Errorf("invalid value type at %s: %T", k, t.values[k]) + } + + repr, err := tomlValueStringRepresentation(v, indent, arraysOneElementPerLine) + if err != nil { + return bytesCount, err + } + + if v.comment != "" { + comment := strings.Replace(v.comment, "\n", "\n"+indent+"#", -1) + start := "# " + if strings.HasPrefix(comment, "#") { + start = "" + } + writtenBytesCountComment, errc := writeStrings(w, "\n", indent, start, comment, "\n") + bytesCount += int64(writtenBytesCountComment) + if errc != nil { + return bytesCount, errc + } + } + + var commented string + if v.commented { + commented = "# " + } + writtenBytesCount, err := writeStrings(w, indent, commented, k, " = ", repr, "\n") + bytesCount += int64(writtenBytesCount) + if err != nil { + return bytesCount, err + } + } + + for _, k := range complexValuesKeys { + v := t.values[k] + + combinedKey := k + if keyspace != "" { + combinedKey = keyspace + "." + combinedKey + } + var commented string + if t.commented { + commented = "# " + } + + switch node := v.(type) { + // node has to be of those two types given how keys are sorted above + case *Tree: + tv, ok := t.values[k].(*Tree) + if !ok { + return bytesCount, fmt.Errorf("invalid value type at %s: %T", k, t.values[k]) + } + if tv.comment != "" { + comment := strings.Replace(tv.comment, "\n", "\n"+indent+"#", -1) + start := "# " + if strings.HasPrefix(comment, "#") { + start = "" + } + writtenBytesCountComment, errc := writeStrings(w, "\n", indent, start, comment) + bytesCount += int64(writtenBytesCountComment) + if errc != nil { + return bytesCount, errc + } + } + writtenBytesCount, err := writeStrings(w, "\n", indent, commented, "[", combinedKey, "]\n") + bytesCount += int64(writtenBytesCount) + if err != nil { + return bytesCount, err + } + bytesCount, err = node.writeTo(w, indent+" ", combinedKey, bytesCount, arraysOneElementPerLine) + if err != nil { + return bytesCount, err + } + case []*Tree: + for _, subTree := range node { + writtenBytesCount, err := writeStrings(w, "\n", indent, commented, "[[", combinedKey, "]]\n") + bytesCount += int64(writtenBytesCount) + if err != nil { + return bytesCount, err + } + + bytesCount, err = subTree.writeTo(w, indent+" ", combinedKey, bytesCount, arraysOneElementPerLine) + if err != nil { + return bytesCount, err + } + } + } + } + + return bytesCount, nil +} + +func writeStrings(w io.Writer, s ...string) (int, error) { + var n int + for i := range s { + b, err := io.WriteString(w, s[i]) + n += b + if err != nil { + return n, err + } + } + return n, nil +} + +// WriteTo encode the Tree as Toml and writes it to the writer w. +// Returns the number of bytes written in case of success, or an error if anything happened. +func (t *Tree) WriteTo(w io.Writer) (int64, error) { + return t.writeTo(w, "", "", 0, false) +} + +// ToTomlString generates a human-readable representation of the current tree. +// Output spans multiple lines, and is suitable for ingest by a TOML parser. +// If the conversion cannot be performed, ToString returns a non-nil error. +func (t *Tree) ToTomlString() (string, error) { + var buf bytes.Buffer + _, err := t.WriteTo(&buf) + if err != nil { + return "", err + } + return buf.String(), nil +} + +// String generates a human-readable representation of the current tree. +// Alias of ToString. Present to implement the fmt.Stringer interface. +func (t *Tree) String() string { + result, _ := t.ToTomlString() + return result +} + +// ToMap recursively generates a representation of the tree using Go built-in structures. +// The following types are used: +// +// * bool +// * float64 +// * int64 +// * string +// * uint64 +// * time.Time +// * map[string]interface{} (where interface{} is any of this list) +// * []interface{} (where interface{} is any of this list) +func (t *Tree) ToMap() map[string]interface{} { + result := map[string]interface{}{} + + for k, v := range t.values { + switch node := v.(type) { + case []*Tree: + var array []interface{} + for _, item := range node { + array = append(array, item.ToMap()) + } + result[k] = array + case *Tree: + result[k] = node.ToMap() + case *tomlValue: + result[k] = node.value + } + } + return result +} diff --git a/vendor/github.com/rs/zerolog/.gitignore b/vendor/github.com/rs/zerolog/.gitignore new file mode 100644 index 0000000..8ebe58b --- /dev/null +++ b/vendor/github.com/rs/zerolog/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test +tmp + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/rs/zerolog/CNAME b/vendor/github.com/rs/zerolog/CNAME new file mode 100644 index 0000000..9ce57a6 --- /dev/null +++ b/vendor/github.com/rs/zerolog/CNAME @@ -0,0 +1 @@ +zerolog.io \ No newline at end of file diff --git a/vendor/github.com/rs/zerolog/LICENSE b/vendor/github.com/rs/zerolog/LICENSE new file mode 100644 index 0000000..677e07f --- /dev/null +++ b/vendor/github.com/rs/zerolog/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Olivier Poitrey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/rs/zerolog/README.md b/vendor/github.com/rs/zerolog/README.md new file mode 100644 index 0000000..36ed93b --- /dev/null +++ b/vendor/github.com/rs/zerolog/README.md @@ -0,0 +1,693 @@ +# Zero Allocation JSON Logger + +[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/rs/zerolog) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/rs/zerolog/master/LICENSE) [![Build Status](https://travis-ci.org/rs/zerolog.svg?branch=master)](https://travis-ci.org/rs/zerolog) [![Coverage](http://gocover.io/_badge/github.com/rs/zerolog)](http://gocover.io/github.com/rs/zerolog) + +The zerolog package provides a fast and simple logger dedicated to JSON output. + +Zerolog's API is designed to provide both a great developer experience and stunning [performance](#benchmarks). Its unique chaining API allows zerolog to write JSON (or CBOR) log events by avoiding allocations and reflection. + +Uber's [zap](https://godoc.org/go.uber.org/zap) library pioneered this approach. Zerolog is taking this concept to the next level with a simpler to use API and even better performance. + +To keep the code base and the API simple, zerolog focuses on efficient structured logging only. Pretty logging on the console is made possible using the provided (but inefficient) [`zerolog.ConsoleWriter`](#pretty-logging). + +![Pretty Logging Image](pretty.png) + +## Who uses zerolog + +Find out [who uses zerolog](https://github.com/rs/zerolog/wiki/Who-uses-zerolog) and add your company / project to the list. + +## Features + +* [Blazing fast](#benchmarks) +* [Low to zero allocation](#benchmarks) +* [Leveled logging](#leveled-logging) +* [Sampling](#log-sampling) +* [Hooks](#hooks) +* [Contextual fields](#contextual-logging) +* `context.Context` integration +* [Integration with `net/http`](#integration-with-nethttp) +* [JSON and CBOR encoding formats](#binary-encoding) +* [Pretty logging for development](#pretty-logging) +* [Error Logging (with optional Stacktrace)](#error-logging) + +## Installation + +```bash +go get -u github.com/rs/zerolog/log +``` + +## Getting Started + +### Simple Logging Example + +For simple logging, import the global logger package **github.com/rs/zerolog/log** + +```go +package main + +import ( + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + // UNIX Time is faster and smaller than most timestamps + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + log.Print("hello world") +} + +// Output: {"time":1516134303,"level":"debug","message":"hello world"} +``` +> Note: By default log writes to `os.Stderr` +> Note: The default log level for `log.Print` is *debug* + +### Contextual Logging + +**zerolog** allows data to be added to log messages in the form of key:value pairs. The data added to the message adds "context" about the log event that can be critical for debugging as well as myriad other purposes. An example of this is below: + +```go +package main + +import ( + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + log.Debug(). + Str("Scale", "833 cents"). + Float64("Interval", 833.09). + Msg("Fibonacci is everywhere") + + log.Debug(). + Str("Name", "Tom"). + Send() +} + +// Output: {"level":"debug","Scale":"833 cents","Interval":833.09,"time":1562212768,"message":"Fibonacci is everywhere"} +// Output: {"level":"debug","Name":"Tom","time":1562212768} +``` + +> You'll note in the above example that when adding contextual fields, the fields are strongly typed. You can find the full list of supported fields [here](#standard-types) + +### Leveled Logging + +#### Simple Leveled Logging Example + +```go +package main + +import ( + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + log.Info().Msg("hello world") +} + +// Output: {"time":1516134303,"level":"info","message":"hello world"} +``` + +> It is very important to note that when using the **zerolog** chaining API, as shown above (`log.Info().Msg("hello world"`), the chain must have either the `Msg` or `Msgf` method call. If you forget to add either of these, the log will not occur and there is no compile time error to alert you of this. + +**zerolog** allows for logging at the following levels (from highest to lowest): + +* panic (`zerolog.PanicLevel`, 5) +* fatal (`zerolog.FatalLevel`, 4) +* error (`zerolog.ErrorLevel`, 3) +* warn (`zerolog.WarnLevel`, 2) +* info (`zerolog.InfoLevel`, 1) +* debug (`zerolog.DebugLevel`, 0) +* trace (`zerolog.TraceLevel`, -1) + +You can set the Global logging level to any of these options using the `SetGlobalLevel` function in the zerolog package, passing in one of the given constants above, e.g. `zerolog.InfoLevel` would be the "info" level. Whichever level is chosen, all logs with a level greater than or equal to that level will be written. To turn off logging entirely, pass the `zerolog.Disabled` constant. + +#### Setting Global Log Level + +This example uses command-line flags to demonstrate various outputs depending on the chosen log level. + +```go +package main + +import ( + "flag" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + debug := flag.Bool("debug", false, "sets log level to debug") + + flag.Parse() + + // Default level for this example is info, unless debug flag is present + zerolog.SetGlobalLevel(zerolog.InfoLevel) + if *debug { + zerolog.SetGlobalLevel(zerolog.DebugLevel) + } + + log.Debug().Msg("This message appears only when log level set to Debug") + log.Info().Msg("This message appears when log level set to Debug or Info") + + if e := log.Debug(); e.Enabled() { + // Compute log output only if enabled. + value := "bar" + e.Str("foo", value).Msg("some debug message") + } +} +``` + +Info Output (no flag) + +```bash +$ ./logLevelExample +{"time":1516387492,"level":"info","message":"This message appears when log level set to Debug or Info"} +``` + +Debug Output (debug flag set) + +```bash +$ ./logLevelExample -debug +{"time":1516387573,"level":"debug","message":"This message appears only when log level set to Debug"} +{"time":1516387573,"level":"info","message":"This message appears when log level set to Debug or Info"} +{"time":1516387573,"level":"debug","foo":"bar","message":"some debug message"} +``` + +#### Logging without Level or Message + +You may choose to log without a specific level by using the `Log` method. You may also write without a message by setting an empty string in the `msg string` parameter of the `Msg` method. Both are demonstrated in the example below. + +```go +package main + +import ( + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + log.Log(). + Str("foo", "bar"). + Msg("") +} + +// Output: {"time":1494567715,"foo":"bar"} +``` + +### Error Logging + +You can log errors using the `Err` method + +```go +package main + +import ( + "errors" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + err := errors.New("seems we have an error here") + log.Error().Err(err).Msg("") +} + +// Output: {"level":"error","error":"seems we have an error here","time":1609085256} +``` + +> The default field name for errors is `error`, you can change this by setting `zerolog.ErrorFieldName` to meet your needs. + +#### Error Logging with Stacktrace + +Using `github.com/pkg/errors`, you can add a formatted stacktrace to your errors. + +```go +package main + +import ( + "github.com/pkg/errors" + "github.com/rs/zerolog/pkgerrors" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack + + err := outer() + log.Error().Stack().Err(err).Msg("") +} + +func inner() error { + return errors.New("seems we have an error here") +} + +func middle() error { + err := inner() + if err != nil { + return err + } + return nil +} + +func outer() error { + err := middle() + if err != nil { + return err + } + return nil +} + +// Output: {"level":"error","stack":[{"func":"inner","line":"20","source":"errors.go"},{"func":"middle","line":"24","source":"errors.go"},{"func":"outer","line":"32","source":"errors.go"},{"func":"main","line":"15","source":"errors.go"},{"func":"main","line":"204","source":"proc.go"},{"func":"goexit","line":"1374","source":"asm_amd64.s"}],"error":"seems we have an error here","time":1609086683} +``` + +> zerolog.ErrorStackMarshaler must be set in order for the stack to output anything. + +#### Logging Fatal Messages + +```go +package main + +import ( + "errors" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +func main() { + err := errors.New("A repo man spends his life getting into tense situations") + service := "myservice" + + zerolog.TimeFieldFormat = zerolog.TimeFormatUnix + + log.Fatal(). + Err(err). + Str("service", service). + Msgf("Cannot start %s", service) +} + +// Output: {"time":1516133263,"level":"fatal","error":"A repo man spends his life getting into tense situations","service":"myservice","message":"Cannot start myservice"} +// exit status 1 +``` + +> NOTE: Using `Msgf` generates one allocation even when the logger is disabled. + + +### Create logger instance to manage different outputs + +```go +logger := zerolog.New(os.Stderr).With().Timestamp().Logger() + +logger.Info().Str("foo", "bar").Msg("hello world") + +// Output: {"level":"info","time":1494567715,"message":"hello world","foo":"bar"} +``` + +### Sub-loggers let you chain loggers with additional context + +```go +sublogger := log.With(). + Str("component", "foo"). + Logger() +sublogger.Info().Msg("hello world") + +// Output: {"level":"info","time":1494567715,"message":"hello world","component":"foo"} +``` + +### Pretty logging + +To log a human-friendly, colorized output, use `zerolog.ConsoleWriter`: + +```go +log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) + +log.Info().Str("foo", "bar").Msg("Hello world") + +// Output: 3:04PM INF Hello World foo=bar +``` + +To customize the configuration and formatting: + +```go +output := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339} +output.FormatLevel = func(i interface{}) string { + return strings.ToUpper(fmt.Sprintf("| %-6s|", i)) +} +output.FormatMessage = func(i interface{}) string { + return fmt.Sprintf("***%s****", i) +} +output.FormatFieldName = func(i interface{}) string { + return fmt.Sprintf("%s:", i) +} +output.FormatFieldValue = func(i interface{}) string { + return strings.ToUpper(fmt.Sprintf("%s", i)) +} + +log := zerolog.New(output).With().Timestamp().Logger() + +log.Info().Str("foo", "bar").Msg("Hello World") + +// Output: 2006-01-02T15:04:05Z07:00 | INFO | ***Hello World**** foo:BAR +``` + +### Sub dictionary + +```go +log.Info(). + Str("foo", "bar"). + Dict("dict", zerolog.Dict(). + Str("bar", "baz"). + Int("n", 1), + ).Msg("hello world") + +// Output: {"level":"info","time":1494567715,"foo":"bar","dict":{"bar":"baz","n":1},"message":"hello world"} +``` + +### Customize automatic field names + +```go +zerolog.TimestampFieldName = "t" +zerolog.LevelFieldName = "l" +zerolog.MessageFieldName = "m" + +log.Info().Msg("hello world") + +// Output: {"l":"info","t":1494567715,"m":"hello world"} +``` + +### Add contextual fields to the global logger + +```go +log.Logger = log.With().Str("foo", "bar").Logger() +``` + +### Add file and line number to log + +```go +log.Logger = log.With().Caller().Logger() +log.Info().Msg("hello world") + +// Output: {"level": "info", "message": "hello world", "caller": "/go/src/your_project/some_file:21"} +``` + + +### Thread-safe, lock-free, non-blocking writer + +If your writer might be slow or not thread-safe and you need your log producers to never get slowed down by a slow writer, you can use a `diode.Writer` as follow: + +```go +wr := diode.NewWriter(os.Stdout, 1000, 10*time.Millisecond, func(missed int) { + fmt.Printf("Logger Dropped %d messages", missed) + }) +log := zerolog.New(wr) +log.Print("test") +``` + +You will need to install `code.cloudfoundry.org/go-diodes` to use this feature. + +### Log Sampling + +```go +sampled := log.Sample(&zerolog.BasicSampler{N: 10}) +sampled.Info().Msg("will be logged every 10 messages") + +// Output: {"time":1494567715,"level":"info","message":"will be logged every 10 messages"} +``` + +More advanced sampling: + +```go +// Will let 5 debug messages per period of 1 second. +// Over 5 debug message, 1 every 100 debug messages are logged. +// Other levels are not sampled. +sampled := log.Sample(zerolog.LevelSampler{ + DebugSampler: &zerolog.BurstSampler{ + Burst: 5, + Period: 1*time.Second, + NextSampler: &zerolog.BasicSampler{N: 100}, + }, +}) +sampled.Debug().Msg("hello world") + +// Output: {"time":1494567715,"level":"debug","message":"hello world"} +``` + +### Hooks + +```go +type SeverityHook struct{} + +func (h SeverityHook) Run(e *zerolog.Event, level zerolog.Level, msg string) { + if level != zerolog.NoLevel { + e.Str("severity", level.String()) + } +} + +hooked := log.Hook(SeverityHook{}) +hooked.Warn().Msg("") + +// Output: {"level":"warn","severity":"warn"} +``` + +### Pass a sub-logger by context + +```go +ctx := log.With().Str("component", "module").Logger().WithContext(ctx) + +log.Ctx(ctx).Info().Msg("hello world") + +// Output: {"component":"module","level":"info","message":"hello world"} +``` + +### Set as standard logger output + +```go +log := zerolog.New(os.Stdout).With(). + Str("foo", "bar"). + Logger() + +stdlog.SetFlags(0) +stdlog.SetOutput(log) + +stdlog.Print("hello world") + +// Output: {"foo":"bar","message":"hello world"} +``` + +### Integration with `net/http` + +The `github.com/rs/zerolog/hlog` package provides some helpers to integrate zerolog with `http.Handler`. + +In this example we use [alice](https://github.com/justinas/alice) to install logger for better readability. + +```go +log := zerolog.New(os.Stdout).With(). + Timestamp(). + Str("role", "my-service"). + Str("host", host). + Logger() + +c := alice.New() + +// Install the logger handler with default output on the console +c = c.Append(hlog.NewHandler(log)) + +// Install some provided extra handler to set some request's context fields. +// Thanks to that handler, all our logs will come with some prepopulated fields. +c = c.Append(hlog.AccessHandler(func(r *http.Request, status, size int, duration time.Duration) { + hlog.FromRequest(r).Info(). + Str("method", r.Method). + Stringer("url", r.URL). + Int("status", status). + Int("size", size). + Dur("duration", duration). + Msg("") +})) +c = c.Append(hlog.RemoteAddrHandler("ip")) +c = c.Append(hlog.UserAgentHandler("user_agent")) +c = c.Append(hlog.RefererHandler("referer")) +c = c.Append(hlog.RequestIDHandler("req_id", "Request-Id")) + +// Here is your final handler +h := c.Then(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Get the logger from the request's context. You can safely assume it + // will be always there: if the handler is removed, hlog.FromRequest + // will return a no-op logger. + hlog.FromRequest(r).Info(). + Str("user", "current user"). + Str("status", "ok"). + Msg("Something happened") + + // Output: {"level":"info","time":"2001-02-03T04:05:06Z","role":"my-service","host":"local-hostname","req_id":"b4g0l5t6tfid6dtrapu0","user":"current user","status":"ok","message":"Something happened"} +})) +http.Handle("/", h) + +if err := http.ListenAndServe(":8080", nil); err != nil { + log.Fatal().Err(err).Msg("Startup failed") +} +``` + +## Multiple Log Output +`zerolog.MultiLevelWriter` may be used to send the log message to multiple outputs. +In this example, we send the log message to both `os.Stdout` and the in-built ConsoleWriter. +```go +func main() { + consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout} + + multi := zerolog.MultiLevelWriter(consoleWriter, os.Stdout) + + logger := zerolog.New(multi).With().Timestamp().Logger() + + logger.Info().Msg("Hello World!") +} + +// Output (Line 1: Console; Line 2: Stdout) +// 12:36PM INF Hello World! +// {"level":"info","time":"2019-11-07T12:36:38+03:00","message":"Hello World!"} +``` + +## Global Settings + +Some settings can be changed and will by applied to all loggers: + +* `log.Logger`: You can set this value to customize the global logger (the one used by package level methods). +* `zerolog.SetGlobalLevel`: Can raise the minimum level of all loggers. Call this with `zerolog.Disabled` to disable logging altogether (quiet mode). +* `zerolog.DisableSampling`: If argument is `true`, all sampled loggers will stop sampling and issue 100% of their log events. +* `zerolog.TimestampFieldName`: Can be set to customize `Timestamp` field name. +* `zerolog.LevelFieldName`: Can be set to customize level field name. +* `zerolog.MessageFieldName`: Can be set to customize message field name. +* `zerolog.ErrorFieldName`: Can be set to customize `Err` field name. +* `zerolog.TimeFieldFormat`: Can be set to customize `Time` field value formatting. If set with `zerolog.TimeFormatUnix`, `zerolog.TimeFormatUnixMs` or `zerolog.TimeFormatUnixMicro`, times are formated as UNIX timestamp. +* `zerolog.DurationFieldUnit`: Can be set to customize the unit for time.Duration type fields added by `Dur` (default: `time.Millisecond`). +* `zerolog.DurationFieldInteger`: If set to `true`, `Dur` fields are formatted as integers instead of floats (default: `false`). +* `zerolog.ErrorHandler`: Called whenever zerolog fails to write an event on its output. If not set, an error is printed on the stderr. This handler must be thread safe and non-blocking. + +## Field Types + +### Standard Types + +* `Str` +* `Bool` +* `Int`, `Int8`, `Int16`, `Int32`, `Int64` +* `Uint`, `Uint8`, `Uint16`, `Uint32`, `Uint64` +* `Float32`, `Float64` + +### Advanced Fields + +* `Err`: Takes an `error` and renders it as a string using the `zerolog.ErrorFieldName` field name. +* `Timestamp`: Inserts a timestamp field with `zerolog.TimestampFieldName` field name, formatted using `zerolog.TimeFieldFormat`. +* `Time`: Adds a field with time formatted with `zerolog.TimeFieldFormat`. +* `Dur`: Adds a field with `time.Duration`. +* `Dict`: Adds a sub-key/value as a field of the event. +* `RawJSON`: Adds a field with an already encoded JSON (`[]byte`) +* `Hex`: Adds a field with value formatted as a hexadecimal string (`[]byte`) +* `Interface`: Uses reflection to marshal the type. + +Most fields are also available in the slice format (`Strs` for `[]string`, `Errs` for `[]error` etc.) + +## Binary Encoding + +In addition to the default JSON encoding, `zerolog` can produce binary logs using [CBOR](http://cbor.io) encoding. The choice of encoding can be decided at compile time using the build tag `binary_log` as follows: + +```bash +go build -tags binary_log . +``` + +To Decode binary encoded log files you can use any CBOR decoder. One has been tested to work +with zerolog library is [CSD](https://github.com/toravir/csd/). + +## Related Projects + +* [grpc-zerolog](https://github.com/cheapRoc/grpc-zerolog): Implementation of `grpclog.LoggerV2` interface using `zerolog` +* [overlog](https://github.com/Trendyol/overlog): Implementation of `Mapped Diagnostic Context` interface using `zerolog` + +## Benchmarks + +See [logbench](http://hackemist.com/logbench/) for more comprehensive and up-to-date benchmarks. + +All operations are allocation free (those numbers *include* JSON encoding): + +```text +BenchmarkLogEmpty-8 100000000 19.1 ns/op 0 B/op 0 allocs/op +BenchmarkDisabled-8 500000000 4.07 ns/op 0 B/op 0 allocs/op +BenchmarkInfo-8 30000000 42.5 ns/op 0 B/op 0 allocs/op +BenchmarkContextFields-8 30000000 44.9 ns/op 0 B/op 0 allocs/op +BenchmarkLogFields-8 10000000 184 ns/op 0 B/op 0 allocs/op +``` + +There are a few Go logging benchmarks and comparisons that include zerolog. + +* [imkira/go-loggers-bench](https://github.com/imkira/go-loggers-bench) +* [uber-common/zap](https://github.com/uber-go/zap#performance) + +Using Uber's zap comparison benchmark: + +Log a message and 10 fields: + +| Library | Time | Bytes Allocated | Objects Allocated | +| :--- | :---: | :---: | :---: | +| zerolog | 767 ns/op | 552 B/op | 6 allocs/op | +| :zap: zap | 848 ns/op | 704 B/op | 2 allocs/op | +| :zap: zap (sugared) | 1363 ns/op | 1610 B/op | 20 allocs/op | +| go-kit | 3614 ns/op | 2895 B/op | 66 allocs/op | +| lion | 5392 ns/op | 5807 B/op | 63 allocs/op | +| logrus | 5661 ns/op | 6092 B/op | 78 allocs/op | +| apex/log | 15332 ns/op | 3832 B/op | 65 allocs/op | +| log15 | 20657 ns/op | 5632 B/op | 93 allocs/op | + +Log a message with a logger that already has 10 fields of context: + +| Library | Time | Bytes Allocated | Objects Allocated | +| :--- | :---: | :---: | :---: | +| zerolog | 52 ns/op | 0 B/op | 0 allocs/op | +| :zap: zap | 283 ns/op | 0 B/op | 0 allocs/op | +| :zap: zap (sugared) | 337 ns/op | 80 B/op | 2 allocs/op | +| lion | 2702 ns/op | 4074 B/op | 38 allocs/op | +| go-kit | 3378 ns/op | 3046 B/op | 52 allocs/op | +| logrus | 4309 ns/op | 4564 B/op | 63 allocs/op | +| apex/log | 13456 ns/op | 2898 B/op | 51 allocs/op | +| log15 | 14179 ns/op | 2642 B/op | 44 allocs/op | + +Log a static string, without any context or `printf`-style templating: + +| Library | Time | Bytes Allocated | Objects Allocated | +| :--- | :---: | :---: | :---: | +| zerolog | 50 ns/op | 0 B/op | 0 allocs/op | +| :zap: zap | 236 ns/op | 0 B/op | 0 allocs/op | +| standard library | 453 ns/op | 80 B/op | 2 allocs/op | +| :zap: zap (sugared) | 337 ns/op | 80 B/op | 2 allocs/op | +| go-kit | 508 ns/op | 656 B/op | 13 allocs/op | +| lion | 771 ns/op | 1224 B/op | 10 allocs/op | +| logrus | 1244 ns/op | 1505 B/op | 27 allocs/op | +| apex/log | 2751 ns/op | 584 B/op | 11 allocs/op | +| log15 | 5181 ns/op | 1592 B/op | 26 allocs/op | + +## Caveats + +Note that zerolog does no de-duplication of fields. Using the same key multiple times creates multiple keys in final JSON: + +```go +logger := zerolog.New(os.Stderr).With().Timestamp().Logger() +logger.Info(). + Timestamp(). + Msg("dup") +// Output: {"level":"info","time":1494567715,"time":1494567715,"message":"dup"} +``` + +In this case, many consumers will take the last value, but this is not guaranteed; check yours if in doubt. diff --git a/vendor/github.com/rs/zerolog/_config.yml b/vendor/github.com/rs/zerolog/_config.yml new file mode 100644 index 0000000..a1e896d --- /dev/null +++ b/vendor/github.com/rs/zerolog/_config.yml @@ -0,0 +1 @@ +remote_theme: rs/gh-readme diff --git a/vendor/github.com/rs/zerolog/array.go b/vendor/github.com/rs/zerolog/array.go new file mode 100644 index 0000000..0f7f53e --- /dev/null +++ b/vendor/github.com/rs/zerolog/array.go @@ -0,0 +1,233 @@ +package zerolog + +import ( + "net" + "sync" + "time" +) + +var arrayPool = &sync.Pool{ + New: func() interface{} { + return &Array{ + buf: make([]byte, 0, 500), + } + }, +} + +// Array is used to prepopulate an array of items +// which can be re-used to add to log messages. +type Array struct { + buf []byte +} + +func putArray(a *Array) { + // Proper usage of a sync.Pool requires each entry to have approximately + // the same memory cost. To obtain this property when the stored type + // contains a variably-sized buffer, we add a hard limit on the maximum buffer + // to place back in the pool. + // + // See https://golang.org/issue/23199 + const maxSize = 1 << 16 // 64KiB + if cap(a.buf) > maxSize { + return + } + arrayPool.Put(a) +} + +// Arr creates an array to be added to an Event or Context. +func Arr() *Array { + a := arrayPool.Get().(*Array) + a.buf = a.buf[:0] + return a +} + +// MarshalZerologArray method here is no-op - since data is +// already in the needed format. +func (*Array) MarshalZerologArray(*Array) { +} + +func (a *Array) write(dst []byte) []byte { + dst = enc.AppendArrayStart(dst) + if len(a.buf) > 0 { + dst = append(append(dst, a.buf...)) + } + dst = enc.AppendArrayEnd(dst) + putArray(a) + return dst +} + +// Object marshals an object that implement the LogObjectMarshaler +// interface and append append it to the array. +func (a *Array) Object(obj LogObjectMarshaler) *Array { + e := Dict() + obj.MarshalZerologObject(e) + e.buf = enc.AppendEndMarker(e.buf) + a.buf = append(enc.AppendArrayDelim(a.buf), e.buf...) + putEvent(e) + return a +} + +// Str append append the val as a string to the array. +func (a *Array) Str(val string) *Array { + a.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), val) + return a +} + +// Bytes append append the val as a string to the array. +func (a *Array) Bytes(val []byte) *Array { + a.buf = enc.AppendBytes(enc.AppendArrayDelim(a.buf), val) + return a +} + +// Hex append append the val as a hex string to the array. +func (a *Array) Hex(val []byte) *Array { + a.buf = enc.AppendHex(enc.AppendArrayDelim(a.buf), val) + return a +} + +// RawJSON adds already encoded JSON to the array. +func (a *Array) RawJSON(val []byte) *Array { + a.buf = appendJSON(enc.AppendArrayDelim(a.buf), val) + return a +} + +// Err serializes and appends the err to the array. +func (a *Array) Err(err error) *Array { + switch m := ErrorMarshalFunc(err).(type) { + case LogObjectMarshaler: + e := newEvent(nil, 0) + e.buf = e.buf[:0] + e.appendObject(m) + a.buf = append(enc.AppendArrayDelim(a.buf), e.buf...) + putEvent(e) + case error: + if m == nil || isNilValue(m) { + a.buf = enc.AppendNil(enc.AppendArrayDelim(a.buf)) + } else { + a.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), m.Error()) + } + case string: + a.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), m) + default: + a.buf = enc.AppendInterface(enc.AppendArrayDelim(a.buf), m) + } + + return a +} + +// Bool append append the val as a bool to the array. +func (a *Array) Bool(b bool) *Array { + a.buf = enc.AppendBool(enc.AppendArrayDelim(a.buf), b) + return a +} + +// Int append append i as a int to the array. +func (a *Array) Int(i int) *Array { + a.buf = enc.AppendInt(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Int8 append append i as a int8 to the array. +func (a *Array) Int8(i int8) *Array { + a.buf = enc.AppendInt8(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Int16 append append i as a int16 to the array. +func (a *Array) Int16(i int16) *Array { + a.buf = enc.AppendInt16(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Int32 append append i as a int32 to the array. +func (a *Array) Int32(i int32) *Array { + a.buf = enc.AppendInt32(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Int64 append append i as a int64 to the array. +func (a *Array) Int64(i int64) *Array { + a.buf = enc.AppendInt64(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Uint append append i as a uint to the array. +func (a *Array) Uint(i uint) *Array { + a.buf = enc.AppendUint(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Uint8 append append i as a uint8 to the array. +func (a *Array) Uint8(i uint8) *Array { + a.buf = enc.AppendUint8(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Uint16 append append i as a uint16 to the array. +func (a *Array) Uint16(i uint16) *Array { + a.buf = enc.AppendUint16(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Uint32 append append i as a uint32 to the array. +func (a *Array) Uint32(i uint32) *Array { + a.buf = enc.AppendUint32(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Uint64 append append i as a uint64 to the array. +func (a *Array) Uint64(i uint64) *Array { + a.buf = enc.AppendUint64(enc.AppendArrayDelim(a.buf), i) + return a +} + +// Float32 append append f as a float32 to the array. +func (a *Array) Float32(f float32) *Array { + a.buf = enc.AppendFloat32(enc.AppendArrayDelim(a.buf), f) + return a +} + +// Float64 append append f as a float64 to the array. +func (a *Array) Float64(f float64) *Array { + a.buf = enc.AppendFloat64(enc.AppendArrayDelim(a.buf), f) + return a +} + +// Time append append t formated as string using zerolog.TimeFieldFormat. +func (a *Array) Time(t time.Time) *Array { + a.buf = enc.AppendTime(enc.AppendArrayDelim(a.buf), t, TimeFieldFormat) + return a +} + +// Dur append append d to the array. +func (a *Array) Dur(d time.Duration) *Array { + a.buf = enc.AppendDuration(enc.AppendArrayDelim(a.buf), d, DurationFieldUnit, DurationFieldInteger) + return a +} + +// Interface append append i marshaled using reflection. +func (a *Array) Interface(i interface{}) *Array { + if obj, ok := i.(LogObjectMarshaler); ok { + return a.Object(obj) + } + a.buf = enc.AppendInterface(enc.AppendArrayDelim(a.buf), i) + return a +} + +// IPAddr adds IPv4 or IPv6 address to the array +func (a *Array) IPAddr(ip net.IP) *Array { + a.buf = enc.AppendIPAddr(enc.AppendArrayDelim(a.buf), ip) + return a +} + +// IPPrefix adds IPv4 or IPv6 Prefix (IP + mask) to the array +func (a *Array) IPPrefix(pfx net.IPNet) *Array { + a.buf = enc.AppendIPPrefix(enc.AppendArrayDelim(a.buf), pfx) + return a +} + +// MACAddr adds a MAC (Ethernet) address to the array +func (a *Array) MACAddr(ha net.HardwareAddr) *Array { + a.buf = enc.AppendMACAddr(enc.AppendArrayDelim(a.buf), ha) + return a +} diff --git a/vendor/github.com/rs/zerolog/console.go b/vendor/github.com/rs/zerolog/console.go new file mode 100644 index 0000000..fd0cad4 --- /dev/null +++ b/vendor/github.com/rs/zerolog/console.go @@ -0,0 +1,409 @@ +package zerolog + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "os" + "path/filepath" + "sort" + "strconv" + "strings" + "sync" + "time" +) + +const ( + colorBlack = iota + 30 + colorRed + colorGreen + colorYellow + colorBlue + colorMagenta + colorCyan + colorWhite + + colorBold = 1 + colorDarkGray = 90 +) + +var ( + consoleBufPool = sync.Pool{ + New: func() interface{} { + return bytes.NewBuffer(make([]byte, 0, 100)) + }, + } +) + +const ( + consoleDefaultTimeFormat = time.Kitchen +) + +// Formatter transforms the input into a formatted string. +type Formatter func(interface{}) string + +// ConsoleWriter parses the JSON input and writes it in an +// (optionally) colorized, human-friendly format to Out. +type ConsoleWriter struct { + // Out is the output destination. + Out io.Writer + + // NoColor disables the colorized output. + NoColor bool + + // TimeFormat specifies the format for timestamp in output. + TimeFormat string + + // PartsOrder defines the order of parts in output. + PartsOrder []string + + // PartsExclude defines parts to not display in output. + PartsExclude []string + + FormatTimestamp Formatter + FormatLevel Formatter + FormatCaller Formatter + FormatMessage Formatter + FormatFieldName Formatter + FormatFieldValue Formatter + FormatErrFieldName Formatter + FormatErrFieldValue Formatter +} + +// NewConsoleWriter creates and initializes a new ConsoleWriter. +func NewConsoleWriter(options ...func(w *ConsoleWriter)) ConsoleWriter { + w := ConsoleWriter{ + Out: os.Stdout, + TimeFormat: consoleDefaultTimeFormat, + PartsOrder: consoleDefaultPartsOrder(), + } + + for _, opt := range options { + opt(&w) + } + + return w +} + +// Write transforms the JSON input with formatters and appends to w.Out. +func (w ConsoleWriter) Write(p []byte) (n int, err error) { + if w.PartsOrder == nil { + w.PartsOrder = consoleDefaultPartsOrder() + } + + var buf = consoleBufPool.Get().(*bytes.Buffer) + defer func() { + buf.Reset() + consoleBufPool.Put(buf) + }() + + var evt map[string]interface{} + p = decodeIfBinaryToBytes(p) + d := json.NewDecoder(bytes.NewReader(p)) + d.UseNumber() + err = d.Decode(&evt) + if err != nil { + return n, fmt.Errorf("cannot decode event: %s", err) + } + + for _, p := range w.PartsOrder { + w.writePart(buf, evt, p) + } + + w.writeFields(evt, buf) + + err = buf.WriteByte('\n') + if err != nil { + return n, err + } + _, err = buf.WriteTo(w.Out) + return len(p), err +} + +// writeFields appends formatted key-value pairs to buf. +func (w ConsoleWriter) writeFields(evt map[string]interface{}, buf *bytes.Buffer) { + var fields = make([]string, 0, len(evt)) + for field := range evt { + switch field { + case LevelFieldName, TimestampFieldName, MessageFieldName, CallerFieldName: + continue + } + fields = append(fields, field) + } + sort.Strings(fields) + + if len(fields) > 0 { + buf.WriteByte(' ') + } + + // Move the "error" field to the front + ei := sort.Search(len(fields), func(i int) bool { return fields[i] >= ErrorFieldName }) + if ei < len(fields) && fields[ei] == ErrorFieldName { + fields[ei] = "" + fields = append([]string{ErrorFieldName}, fields...) + var xfields = make([]string, 0, len(fields)) + for _, field := range fields { + if field == "" { // Skip empty fields + continue + } + xfields = append(xfields, field) + } + fields = xfields + } + + for i, field := range fields { + var fn Formatter + var fv Formatter + + if field == ErrorFieldName { + if w.FormatErrFieldName == nil { + fn = consoleDefaultFormatErrFieldName(w.NoColor) + } else { + fn = w.FormatErrFieldName + } + + if w.FormatErrFieldValue == nil { + fv = consoleDefaultFormatErrFieldValue(w.NoColor) + } else { + fv = w.FormatErrFieldValue + } + } else { + if w.FormatFieldName == nil { + fn = consoleDefaultFormatFieldName(w.NoColor) + } else { + fn = w.FormatFieldName + } + + if w.FormatFieldValue == nil { + fv = consoleDefaultFormatFieldValue + } else { + fv = w.FormatFieldValue + } + } + + buf.WriteString(fn(field)) + + switch fValue := evt[field].(type) { + case string: + if needsQuote(fValue) { + buf.WriteString(fv(strconv.Quote(fValue))) + } else { + buf.WriteString(fv(fValue)) + } + case json.Number: + buf.WriteString(fv(fValue)) + default: + b, err := json.Marshal(fValue) + if err != nil { + fmt.Fprintf(buf, colorize("[error: %v]", colorRed, w.NoColor), err) + } else { + fmt.Fprint(buf, fv(b)) + } + } + + if i < len(fields)-1 { // Skip space for last field + buf.WriteByte(' ') + } + } +} + +// writePart appends a formatted part to buf. +func (w ConsoleWriter) writePart(buf *bytes.Buffer, evt map[string]interface{}, p string) { + var f Formatter + + if w.PartsExclude != nil && len(w.PartsExclude) > 0 { + for _, exclude := range w.PartsExclude { + if exclude == p { + return + } + } + } + + switch p { + case LevelFieldName: + if w.FormatLevel == nil { + f = consoleDefaultFormatLevel(w.NoColor) + } else { + f = w.FormatLevel + } + case TimestampFieldName: + if w.FormatTimestamp == nil { + f = consoleDefaultFormatTimestamp(w.TimeFormat, w.NoColor) + } else { + f = w.FormatTimestamp + } + case MessageFieldName: + if w.FormatMessage == nil { + f = consoleDefaultFormatMessage + } else { + f = w.FormatMessage + } + case CallerFieldName: + if w.FormatCaller == nil { + f = consoleDefaultFormatCaller(w.NoColor) + } else { + f = w.FormatCaller + } + default: + if w.FormatFieldValue == nil { + f = consoleDefaultFormatFieldValue + } else { + f = w.FormatFieldValue + } + } + + var s = f(evt[p]) + + if len(s) > 0 { + buf.WriteString(s) + if p != w.PartsOrder[len(w.PartsOrder)-1] { // Skip space for last part + buf.WriteByte(' ') + } + } +} + +// needsQuote returns true when the string s should be quoted in output. +func needsQuote(s string) bool { + for i := range s { + if s[i] < 0x20 || s[i] > 0x7e || s[i] == ' ' || s[i] == '\\' || s[i] == '"' { + return true + } + } + return false +} + +// colorize returns the string s wrapped in ANSI code c, unless disabled is true. +func colorize(s interface{}, c int, disabled bool) string { + if disabled { + return fmt.Sprintf("%s", s) + } + return fmt.Sprintf("\x1b[%dm%v\x1b[0m", c, s) +} + +// ----- DEFAULT FORMATTERS --------------------------------------------------- + +func consoleDefaultPartsOrder() []string { + return []string{ + TimestampFieldName, + LevelFieldName, + CallerFieldName, + MessageFieldName, + } +} + +func consoleDefaultFormatTimestamp(timeFormat string, noColor bool) Formatter { + if timeFormat == "" { + timeFormat = consoleDefaultTimeFormat + } + return func(i interface{}) string { + t := "" + switch tt := i.(type) { + case string: + ts, err := time.Parse(TimeFieldFormat, tt) + if err != nil { + t = tt + } else { + t = ts.Format(timeFormat) + } + case json.Number: + i, err := tt.Int64() + if err != nil { + t = tt.String() + } else { + var sec, nsec int64 = i, 0 + switch TimeFieldFormat { + case TimeFormatUnixMs: + nsec = int64(time.Duration(i) * time.Millisecond) + sec = 0 + case TimeFormatUnixMicro: + nsec = int64(time.Duration(i) * time.Microsecond) + sec = 0 + } + ts := time.Unix(sec, nsec).UTC() + t = ts.Format(timeFormat) + } + } + return colorize(t, colorDarkGray, noColor) + } +} + +func consoleDefaultFormatLevel(noColor bool) Formatter { + return func(i interface{}) string { + var l string + if ll, ok := i.(string); ok { + switch ll { + case "trace": + l = colorize("TRC", colorMagenta, noColor) + case "debug": + l = colorize("DBG", colorYellow, noColor) + case "info": + l = colorize("INF", colorGreen, noColor) + case "warn": + l = colorize("WRN", colorRed, noColor) + case "error": + l = colorize(colorize("ERR", colorRed, noColor), colorBold, noColor) + case "fatal": + l = colorize(colorize("FTL", colorRed, noColor), colorBold, noColor) + case "panic": + l = colorize(colorize("PNC", colorRed, noColor), colorBold, noColor) + default: + l = colorize("???", colorBold, noColor) + } + } else { + if i == nil { + l = colorize("???", colorBold, noColor) + } else { + l = strings.ToUpper(fmt.Sprintf("%s", i))[0:3] + } + } + return l + } +} + +func consoleDefaultFormatCaller(noColor bool) Formatter { + return func(i interface{}) string { + var c string + if cc, ok := i.(string); ok { + c = cc + } + if len(c) > 0 { + if cwd, err := os.Getwd(); err == nil { + if rel, err := filepath.Rel(cwd, c); err == nil { + c = rel + } + } + c = colorize(c, colorBold, noColor) + colorize(" >", colorCyan, noColor) + } + return c + } +} + +func consoleDefaultFormatMessage(i interface{}) string { + if i == nil { + return "" + } + return fmt.Sprintf("%s", i) +} + +func consoleDefaultFormatFieldName(noColor bool) Formatter { + return func(i interface{}) string { + return colorize(fmt.Sprintf("%s=", i), colorCyan, noColor) + } +} + +func consoleDefaultFormatFieldValue(i interface{}) string { + return fmt.Sprintf("%s", i) +} + +func consoleDefaultFormatErrFieldName(noColor bool) Formatter { + return func(i interface{}) string { + return colorize(fmt.Sprintf("%s=", i), colorRed, noColor) + } +} + +func consoleDefaultFormatErrFieldValue(noColor bool) Formatter { + return func(i interface{}) string { + return colorize(fmt.Sprintf("%s", i), colorRed, noColor) + } +} diff --git a/vendor/github.com/rs/zerolog/context.go b/vendor/github.com/rs/zerolog/context.go new file mode 100644 index 0000000..7cdd8cc --- /dev/null +++ b/vendor/github.com/rs/zerolog/context.go @@ -0,0 +1,431 @@ +package zerolog + +import ( + "fmt" + "io/ioutil" + "math" + "net" + "time" +) + +// Context configures a new sub-logger with contextual fields. +type Context struct { + l Logger +} + +// Logger returns the logger with the context previously set. +func (c Context) Logger() Logger { + return c.l +} + +// Fields is a helper function to use a map to set fields using type assertion. +func (c Context) Fields(fields map[string]interface{}) Context { + c.l.context = appendFields(c.l.context, fields) + return c +} + +// Dict adds the field key with the dict to the logger context. +func (c Context) Dict(key string, dict *Event) Context { + dict.buf = enc.AppendEndMarker(dict.buf) + c.l.context = append(enc.AppendKey(c.l.context, key), dict.buf...) + putEvent(dict) + return c +} + +// Array adds the field key with an array to the event context. +// Use zerolog.Arr() to create the array or pass a type that +// implement the LogArrayMarshaler interface. +func (c Context) Array(key string, arr LogArrayMarshaler) Context { + c.l.context = enc.AppendKey(c.l.context, key) + if arr, ok := arr.(*Array); ok { + c.l.context = arr.write(c.l.context) + return c + } + var a *Array + if aa, ok := arr.(*Array); ok { + a = aa + } else { + a = Arr() + arr.MarshalZerologArray(a) + } + c.l.context = a.write(c.l.context) + return c +} + +// Object marshals an object that implement the LogObjectMarshaler interface. +func (c Context) Object(key string, obj LogObjectMarshaler) Context { + e := newEvent(levelWriterAdapter{ioutil.Discard}, 0) + e.Object(key, obj) + c.l.context = enc.AppendObjectData(c.l.context, e.buf) + putEvent(e) + return c +} + +// EmbedObject marshals and Embeds an object that implement the LogObjectMarshaler interface. +func (c Context) EmbedObject(obj LogObjectMarshaler) Context { + e := newEvent(levelWriterAdapter{ioutil.Discard}, 0) + e.EmbedObject(obj) + c.l.context = enc.AppendObjectData(c.l.context, e.buf) + putEvent(e) + return c +} + +// Str adds the field key with val as a string to the logger context. +func (c Context) Str(key, val string) Context { + c.l.context = enc.AppendString(enc.AppendKey(c.l.context, key), val) + return c +} + +// Strs adds the field key with val as a string to the logger context. +func (c Context) Strs(key string, vals []string) Context { + c.l.context = enc.AppendStrings(enc.AppendKey(c.l.context, key), vals) + return c +} + +// Stringer adds the field key with val.String() (or null if val is nil) to the logger context. +func (c Context) Stringer(key string, val fmt.Stringer) Context { + if val != nil { + c.l.context = enc.AppendString(enc.AppendKey(c.l.context, key), val.String()) + return c + } + + c.l.context = enc.AppendInterface(enc.AppendKey(c.l.context, key), nil) + return c +} + +// Bytes adds the field key with val as a []byte to the logger context. +func (c Context) Bytes(key string, val []byte) Context { + c.l.context = enc.AppendBytes(enc.AppendKey(c.l.context, key), val) + return c +} + +// Hex adds the field key with val as a hex string to the logger context. +func (c Context) Hex(key string, val []byte) Context { + c.l.context = enc.AppendHex(enc.AppendKey(c.l.context, key), val) + return c +} + +// RawJSON adds already encoded JSON to context. +// +// No sanity check is performed on b; it must not contain carriage returns and +// be valid JSON. +func (c Context) RawJSON(key string, b []byte) Context { + c.l.context = appendJSON(enc.AppendKey(c.l.context, key), b) + return c +} + +// AnErr adds the field key with serialized err to the logger context. +func (c Context) AnErr(key string, err error) Context { + switch m := ErrorMarshalFunc(err).(type) { + case nil: + return c + case LogObjectMarshaler: + return c.Object(key, m) + case error: + if m == nil || isNilValue(m) { + return c + } else { + return c.Str(key, m.Error()) + } + case string: + return c.Str(key, m) + default: + return c.Interface(key, m) + } +} + +// Errs adds the field key with errs as an array of serialized errors to the +// logger context. +func (c Context) Errs(key string, errs []error) Context { + arr := Arr() + for _, err := range errs { + switch m := ErrorMarshalFunc(err).(type) { + case LogObjectMarshaler: + arr = arr.Object(m) + case error: + if m == nil || isNilValue(m) { + arr = arr.Interface(nil) + } else { + arr = arr.Str(m.Error()) + } + case string: + arr = arr.Str(m) + default: + arr = arr.Interface(m) + } + } + + return c.Array(key, arr) +} + +// Err adds the field "error" with serialized err to the logger context. +func (c Context) Err(err error) Context { + return c.AnErr(ErrorFieldName, err) +} + +// Bool adds the field key with val as a bool to the logger context. +func (c Context) Bool(key string, b bool) Context { + c.l.context = enc.AppendBool(enc.AppendKey(c.l.context, key), b) + return c +} + +// Bools adds the field key with val as a []bool to the logger context. +func (c Context) Bools(key string, b []bool) Context { + c.l.context = enc.AppendBools(enc.AppendKey(c.l.context, key), b) + return c +} + +// Int adds the field key with i as a int to the logger context. +func (c Context) Int(key string, i int) Context { + c.l.context = enc.AppendInt(enc.AppendKey(c.l.context, key), i) + return c +} + +// Ints adds the field key with i as a []int to the logger context. +func (c Context) Ints(key string, i []int) Context { + c.l.context = enc.AppendInts(enc.AppendKey(c.l.context, key), i) + return c +} + +// Int8 adds the field key with i as a int8 to the logger context. +func (c Context) Int8(key string, i int8) Context { + c.l.context = enc.AppendInt8(enc.AppendKey(c.l.context, key), i) + return c +} + +// Ints8 adds the field key with i as a []int8 to the logger context. +func (c Context) Ints8(key string, i []int8) Context { + c.l.context = enc.AppendInts8(enc.AppendKey(c.l.context, key), i) + return c +} + +// Int16 adds the field key with i as a int16 to the logger context. +func (c Context) Int16(key string, i int16) Context { + c.l.context = enc.AppendInt16(enc.AppendKey(c.l.context, key), i) + return c +} + +// Ints16 adds the field key with i as a []int16 to the logger context. +func (c Context) Ints16(key string, i []int16) Context { + c.l.context = enc.AppendInts16(enc.AppendKey(c.l.context, key), i) + return c +} + +// Int32 adds the field key with i as a int32 to the logger context. +func (c Context) Int32(key string, i int32) Context { + c.l.context = enc.AppendInt32(enc.AppendKey(c.l.context, key), i) + return c +} + +// Ints32 adds the field key with i as a []int32 to the logger context. +func (c Context) Ints32(key string, i []int32) Context { + c.l.context = enc.AppendInts32(enc.AppendKey(c.l.context, key), i) + return c +} + +// Int64 adds the field key with i as a int64 to the logger context. +func (c Context) Int64(key string, i int64) Context { + c.l.context = enc.AppendInt64(enc.AppendKey(c.l.context, key), i) + return c +} + +// Ints64 adds the field key with i as a []int64 to the logger context. +func (c Context) Ints64(key string, i []int64) Context { + c.l.context = enc.AppendInts64(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uint adds the field key with i as a uint to the logger context. +func (c Context) Uint(key string, i uint) Context { + c.l.context = enc.AppendUint(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uints adds the field key with i as a []uint to the logger context. +func (c Context) Uints(key string, i []uint) Context { + c.l.context = enc.AppendUints(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uint8 adds the field key with i as a uint8 to the logger context. +func (c Context) Uint8(key string, i uint8) Context { + c.l.context = enc.AppendUint8(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uints8 adds the field key with i as a []uint8 to the logger context. +func (c Context) Uints8(key string, i []uint8) Context { + c.l.context = enc.AppendUints8(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uint16 adds the field key with i as a uint16 to the logger context. +func (c Context) Uint16(key string, i uint16) Context { + c.l.context = enc.AppendUint16(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uints16 adds the field key with i as a []uint16 to the logger context. +func (c Context) Uints16(key string, i []uint16) Context { + c.l.context = enc.AppendUints16(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uint32 adds the field key with i as a uint32 to the logger context. +func (c Context) Uint32(key string, i uint32) Context { + c.l.context = enc.AppendUint32(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uints32 adds the field key with i as a []uint32 to the logger context. +func (c Context) Uints32(key string, i []uint32) Context { + c.l.context = enc.AppendUints32(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uint64 adds the field key with i as a uint64 to the logger context. +func (c Context) Uint64(key string, i uint64) Context { + c.l.context = enc.AppendUint64(enc.AppendKey(c.l.context, key), i) + return c +} + +// Uints64 adds the field key with i as a []uint64 to the logger context. +func (c Context) Uints64(key string, i []uint64) Context { + c.l.context = enc.AppendUints64(enc.AppendKey(c.l.context, key), i) + return c +} + +// Float32 adds the field key with f as a float32 to the logger context. +func (c Context) Float32(key string, f float32) Context { + c.l.context = enc.AppendFloat32(enc.AppendKey(c.l.context, key), f) + return c +} + +// Floats32 adds the field key with f as a []float32 to the logger context. +func (c Context) Floats32(key string, f []float32) Context { + c.l.context = enc.AppendFloats32(enc.AppendKey(c.l.context, key), f) + return c +} + +// Float64 adds the field key with f as a float64 to the logger context. +func (c Context) Float64(key string, f float64) Context { + c.l.context = enc.AppendFloat64(enc.AppendKey(c.l.context, key), f) + return c +} + +// Floats64 adds the field key with f as a []float64 to the logger context. +func (c Context) Floats64(key string, f []float64) Context { + c.l.context = enc.AppendFloats64(enc.AppendKey(c.l.context, key), f) + return c +} + +type timestampHook struct{} + +func (ts timestampHook) Run(e *Event, level Level, msg string) { + e.Timestamp() +} + +var th = timestampHook{} + +// Timestamp adds the current local time as UNIX timestamp to the logger context with the "time" key. +// To customize the key name, change zerolog.TimestampFieldName. +// +// NOTE: It won't dedupe the "time" key if the *Context has one already. +func (c Context) Timestamp() Context { + c.l = c.l.Hook(th) + return c +} + +// Time adds the field key with t formated as string using zerolog.TimeFieldFormat. +func (c Context) Time(key string, t time.Time) Context { + c.l.context = enc.AppendTime(enc.AppendKey(c.l.context, key), t, TimeFieldFormat) + return c +} + +// Times adds the field key with t formated as string using zerolog.TimeFieldFormat. +func (c Context) Times(key string, t []time.Time) Context { + c.l.context = enc.AppendTimes(enc.AppendKey(c.l.context, key), t, TimeFieldFormat) + return c +} + +// Dur adds the fields key with d divided by unit and stored as a float. +func (c Context) Dur(key string, d time.Duration) Context { + c.l.context = enc.AppendDuration(enc.AppendKey(c.l.context, key), d, DurationFieldUnit, DurationFieldInteger) + return c +} + +// Durs adds the fields key with d divided by unit and stored as a float. +func (c Context) Durs(key string, d []time.Duration) Context { + c.l.context = enc.AppendDurations(enc.AppendKey(c.l.context, key), d, DurationFieldUnit, DurationFieldInteger) + return c +} + +// Interface adds the field key with obj marshaled using reflection. +func (c Context) Interface(key string, i interface{}) Context { + c.l.context = enc.AppendInterface(enc.AppendKey(c.l.context, key), i) + return c +} + +type callerHook struct { + callerSkipFrameCount int +} + +func newCallerHook(skipFrameCount int) callerHook { + return callerHook{callerSkipFrameCount: skipFrameCount} +} + +func (ch callerHook) Run(e *Event, level Level, msg string) { + switch ch.callerSkipFrameCount { + case useGlobalSkipFrameCount: + // Extra frames to skip (added by hook infra). + e.caller(CallerSkipFrameCount + contextCallerSkipFrameCount) + default: + // Extra frames to skip (added by hook infra). + e.caller(ch.callerSkipFrameCount + contextCallerSkipFrameCount) + } +} + +// useGlobalSkipFrameCount acts as a flag to informat callerHook.Run +// to use the global CallerSkipFrameCount. +const useGlobalSkipFrameCount = math.MinInt32 + +// ch is the default caller hook using the global CallerSkipFrameCount. +var ch = newCallerHook(useGlobalSkipFrameCount) + +// Caller adds the file:line of the caller with the zerolog.CallerFieldName key. +func (c Context) Caller() Context { + c.l = c.l.Hook(ch) + return c +} + +// CallerWithSkipFrameCount adds the file:line of the caller with the zerolog.CallerFieldName key. +// The specified skipFrameCount int will override the global CallerSkipFrameCount for this context's respective logger. +// If set to -1 the global CallerSkipFrameCount will be used. +func (c Context) CallerWithSkipFrameCount(skipFrameCount int) Context { + c.l = c.l.Hook(newCallerHook(skipFrameCount)) + return c +} + +// Stack enables stack trace printing for the error passed to Err(). +func (c Context) Stack() Context { + c.l.stack = true + return c +} + +// IPAddr adds IPv4 or IPv6 Address to the context +func (c Context) IPAddr(key string, ip net.IP) Context { + c.l.context = enc.AppendIPAddr(enc.AppendKey(c.l.context, key), ip) + return c +} + +// IPPrefix adds IPv4 or IPv6 Prefix (address and mask) to the context +func (c Context) IPPrefix(key string, pfx net.IPNet) Context { + c.l.context = enc.AppendIPPrefix(enc.AppendKey(c.l.context, key), pfx) + return c +} + +// MACAddr adds MAC address to the context +func (c Context) MACAddr(key string, ha net.HardwareAddr) Context { + c.l.context = enc.AppendMACAddr(enc.AppendKey(c.l.context, key), ha) + return c +} diff --git a/vendor/github.com/rs/zerolog/ctx.go b/vendor/github.com/rs/zerolog/ctx.go new file mode 100644 index 0000000..ce18a32 --- /dev/null +++ b/vendor/github.com/rs/zerolog/ctx.go @@ -0,0 +1,48 @@ +package zerolog + +import ( + "context" +) + +var disabledLogger *Logger + +func init() { + SetGlobalLevel(TraceLevel) + l := Nop() + disabledLogger = &l +} + +type ctxKey struct{} + +// WithContext returns a copy of ctx with l associated. If an instance of Logger +// is already in the context, the context is not updated. +// +// For instance, to add a field to an existing logger in the context, use this +// notation: +// +// ctx := r.Context() +// l := zerolog.Ctx(ctx) +// l.UpdateContext(func(c Context) Context { +// return c.Str("bar", "baz") +// }) +func (l *Logger) WithContext(ctx context.Context) context.Context { + if lp, ok := ctx.Value(ctxKey{}).(*Logger); ok { + if lp == l { + // Do not store same logger. + return ctx + } + } else if l.level == Disabled { + // Do not store disabled logger. + return ctx + } + return context.WithValue(ctx, ctxKey{}, l) +} + +// Ctx returns the Logger associated with the ctx. If no logger +// is associated, a disabled logger is returned. +func Ctx(ctx context.Context) *Logger { + if l, ok := ctx.Value(ctxKey{}).(*Logger); ok { + return l + } + return disabledLogger +} diff --git a/vendor/github.com/rs/zerolog/encoder.go b/vendor/github.com/rs/zerolog/encoder.go new file mode 100644 index 0000000..09b24e8 --- /dev/null +++ b/vendor/github.com/rs/zerolog/encoder.go @@ -0,0 +1,56 @@ +package zerolog + +import ( + "net" + "time" +) + +type encoder interface { + AppendArrayDelim(dst []byte) []byte + AppendArrayEnd(dst []byte) []byte + AppendArrayStart(dst []byte) []byte + AppendBeginMarker(dst []byte) []byte + AppendBool(dst []byte, val bool) []byte + AppendBools(dst []byte, vals []bool) []byte + AppendBytes(dst, s []byte) []byte + AppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte + AppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte + AppendEndMarker(dst []byte) []byte + AppendFloat32(dst []byte, val float32) []byte + AppendFloat64(dst []byte, val float64) []byte + AppendFloats32(dst []byte, vals []float32) []byte + AppendFloats64(dst []byte, vals []float64) []byte + AppendHex(dst, s []byte) []byte + AppendIPAddr(dst []byte, ip net.IP) []byte + AppendIPPrefix(dst []byte, pfx net.IPNet) []byte + AppendInt(dst []byte, val int) []byte + AppendInt16(dst []byte, val int16) []byte + AppendInt32(dst []byte, val int32) []byte + AppendInt64(dst []byte, val int64) []byte + AppendInt8(dst []byte, val int8) []byte + AppendInterface(dst []byte, i interface{}) []byte + AppendInts(dst []byte, vals []int) []byte + AppendInts16(dst []byte, vals []int16) []byte + AppendInts32(dst []byte, vals []int32) []byte + AppendInts64(dst []byte, vals []int64) []byte + AppendInts8(dst []byte, vals []int8) []byte + AppendKey(dst []byte, key string) []byte + AppendLineBreak(dst []byte) []byte + AppendMACAddr(dst []byte, ha net.HardwareAddr) []byte + AppendNil(dst []byte) []byte + AppendObjectData(dst []byte, o []byte) []byte + AppendString(dst []byte, s string) []byte + AppendStrings(dst []byte, vals []string) []byte + AppendTime(dst []byte, t time.Time, format string) []byte + AppendTimes(dst []byte, vals []time.Time, format string) []byte + AppendUint(dst []byte, val uint) []byte + AppendUint16(dst []byte, val uint16) []byte + AppendUint32(dst []byte, val uint32) []byte + AppendUint64(dst []byte, val uint64) []byte + AppendUint8(dst []byte, val uint8) []byte + AppendUints(dst []byte, vals []uint) []byte + AppendUints16(dst []byte, vals []uint16) []byte + AppendUints32(dst []byte, vals []uint32) []byte + AppendUints64(dst []byte, vals []uint64) []byte + AppendUints8(dst []byte, vals []uint8) []byte +} diff --git a/vendor/github.com/rs/zerolog/encoder_cbor.go b/vendor/github.com/rs/zerolog/encoder_cbor.go new file mode 100644 index 0000000..f8d3fe9 --- /dev/null +++ b/vendor/github.com/rs/zerolog/encoder_cbor.go @@ -0,0 +1,35 @@ +// +build binary_log + +package zerolog + +// This file contains bindings to do binary encoding. + +import ( + "github.com/rs/zerolog/internal/cbor" +) + +var ( + _ encoder = (*cbor.Encoder)(nil) + + enc = cbor.Encoder{} +) + +func appendJSON(dst []byte, j []byte) []byte { + return cbor.AppendEmbeddedJSON(dst, j) +} + +// decodeIfBinaryToString - converts a binary formatted log msg to a +// JSON formatted String Log message. +func decodeIfBinaryToString(in []byte) string { + return cbor.DecodeIfBinaryToString(in) +} + +func decodeObjectToStr(in []byte) string { + return cbor.DecodeObjectToStr(in) +} + +// decodeIfBinaryToBytes - converts a binary formatted log msg to a +// JSON formatted Bytes Log message. +func decodeIfBinaryToBytes(in []byte) []byte { + return cbor.DecodeIfBinaryToBytes(in) +} diff --git a/vendor/github.com/rs/zerolog/encoder_json.go b/vendor/github.com/rs/zerolog/encoder_json.go new file mode 100644 index 0000000..fe580f5 --- /dev/null +++ b/vendor/github.com/rs/zerolog/encoder_json.go @@ -0,0 +1,32 @@ +// +build !binary_log + +package zerolog + +// encoder_json.go file contains bindings to generate +// JSON encoded byte stream. + +import ( + "github.com/rs/zerolog/internal/json" +) + +var ( + _ encoder = (*json.Encoder)(nil) + + enc = json.Encoder{} +) + +func appendJSON(dst []byte, j []byte) []byte { + return append(dst, j...) +} + +func decodeIfBinaryToString(in []byte) string { + return string(in) +} + +func decodeObjectToStr(in []byte) string { + return string(in) +} + +func decodeIfBinaryToBytes(in []byte) []byte { + return in +} diff --git a/vendor/github.com/rs/zerolog/event.go b/vendor/github.com/rs/zerolog/event.go new file mode 100644 index 0000000..ff6ff24 --- /dev/null +++ b/vendor/github.com/rs/zerolog/event.go @@ -0,0 +1,745 @@ +package zerolog + +import ( + "fmt" + "net" + "os" + "runtime" + "sync" + "time" +) + +var eventPool = &sync.Pool{ + New: func() interface{} { + return &Event{ + buf: make([]byte, 0, 500), + } + }, +} + +// Event represents a log event. It is instanced by one of the level method of +// Logger and finalized by the Msg or Msgf method. +type Event struct { + buf []byte + w LevelWriter + level Level + done func(msg string) + stack bool // enable error stack trace + ch []Hook // hooks from context + skipFrame int // The number of additional frames to skip when printing the caller. +} + +func putEvent(e *Event) { + // Proper usage of a sync.Pool requires each entry to have approximately + // the same memory cost. To obtain this property when the stored type + // contains a variably-sized buffer, we add a hard limit on the maximum buffer + // to place back in the pool. + // + // See https://golang.org/issue/23199 + const maxSize = 1 << 16 // 64KiB + if cap(e.buf) > maxSize { + return + } + eventPool.Put(e) +} + +// LogObjectMarshaler provides a strongly-typed and encoding-agnostic interface +// to be implemented by types used with Event/Context's Object methods. +type LogObjectMarshaler interface { + MarshalZerologObject(e *Event) +} + +// LogArrayMarshaler provides a strongly-typed and encoding-agnostic interface +// to be implemented by types used with Event/Context's Array methods. +type LogArrayMarshaler interface { + MarshalZerologArray(a *Array) +} + +func newEvent(w LevelWriter, level Level) *Event { + e := eventPool.Get().(*Event) + e.buf = e.buf[:0] + e.ch = nil + e.buf = enc.AppendBeginMarker(e.buf) + e.w = w + e.level = level + e.stack = false + e.skipFrame = 0 + return e +} + +func (e *Event) write() (err error) { + if e == nil { + return nil + } + if e.level != Disabled { + e.buf = enc.AppendEndMarker(e.buf) + e.buf = enc.AppendLineBreak(e.buf) + if e.w != nil { + _, err = e.w.WriteLevel(e.level, e.buf) + } + } + putEvent(e) + return +} + +// Enabled return false if the *Event is going to be filtered out by +// log level or sampling. +func (e *Event) Enabled() bool { + return e != nil && e.level != Disabled +} + +// Discard disables the event so Msg(f) won't print it. +func (e *Event) Discard() *Event { + if e == nil { + return e + } + e.level = Disabled + return nil +} + +// Msg sends the *Event with msg added as the message field if not empty. +// +// NOTICE: once this method is called, the *Event should be disposed. +// Calling Msg twice can have unexpected result. +func (e *Event) Msg(msg string) { + if e == nil { + return + } + e.msg(msg) +} + +// Send is equivalent to calling Msg(""). +// +// NOTICE: once this method is called, the *Event should be disposed. +func (e *Event) Send() { + if e == nil { + return + } + e.msg("") +} + +// Msgf sends the event with formatted msg added as the message field if not empty. +// +// NOTICE: once this method is called, the *Event should be disposed. +// Calling Msgf twice can have unexpected result. +func (e *Event) Msgf(format string, v ...interface{}) { + if e == nil { + return + } + e.msg(fmt.Sprintf(format, v...)) +} + +func (e *Event) msg(msg string) { + for _, hook := range e.ch { + hook.Run(e, e.level, msg) + } + if msg != "" { + e.buf = enc.AppendString(enc.AppendKey(e.buf, MessageFieldName), msg) + } + if e.done != nil { + defer e.done(msg) + } + if err := e.write(); err != nil { + if ErrorHandler != nil { + ErrorHandler(err) + } else { + fmt.Fprintf(os.Stderr, "zerolog: could not write event: %v\n", err) + } + } +} + +// Fields is a helper function to use a map to set fields using type assertion. +func (e *Event) Fields(fields map[string]interface{}) *Event { + if e == nil { + return e + } + e.buf = appendFields(e.buf, fields) + return e +} + +// Dict adds the field key with a dict to the event context. +// Use zerolog.Dict() to create the dictionary. +func (e *Event) Dict(key string, dict *Event) *Event { + if e == nil { + return e + } + dict.buf = enc.AppendEndMarker(dict.buf) + e.buf = append(enc.AppendKey(e.buf, key), dict.buf...) + putEvent(dict) + return e +} + +// Dict creates an Event to be used with the *Event.Dict method. +// Call usual field methods like Str, Int etc to add fields to this +// event and give it as argument the *Event.Dict method. +func Dict() *Event { + return newEvent(nil, 0) +} + +// Array adds the field key with an array to the event context. +// Use zerolog.Arr() to create the array or pass a type that +// implement the LogArrayMarshaler interface. +func (e *Event) Array(key string, arr LogArrayMarshaler) *Event { + if e == nil { + return e + } + e.buf = enc.AppendKey(e.buf, key) + var a *Array + if aa, ok := arr.(*Array); ok { + a = aa + } else { + a = Arr() + arr.MarshalZerologArray(a) + } + e.buf = a.write(e.buf) + return e +} + +func (e *Event) appendObject(obj LogObjectMarshaler) { + e.buf = enc.AppendBeginMarker(e.buf) + obj.MarshalZerologObject(e) + e.buf = enc.AppendEndMarker(e.buf) +} + +// Object marshals an object that implement the LogObjectMarshaler interface. +func (e *Event) Object(key string, obj LogObjectMarshaler) *Event { + if e == nil { + return e + } + e.buf = enc.AppendKey(e.buf, key) + e.appendObject(obj) + return e +} + +// EmbedObject marshals an object that implement the LogObjectMarshaler interface. +func (e *Event) EmbedObject(obj LogObjectMarshaler) *Event { + if e == nil { + return e + } + obj.MarshalZerologObject(e) + return e +} + +// Str adds the field key with val as a string to the *Event context. +func (e *Event) Str(key, val string) *Event { + if e == nil { + return e + } + e.buf = enc.AppendString(enc.AppendKey(e.buf, key), val) + return e +} + +// Strs adds the field key with vals as a []string to the *Event context. +func (e *Event) Strs(key string, vals []string) *Event { + if e == nil { + return e + } + e.buf = enc.AppendStrings(enc.AppendKey(e.buf, key), vals) + return e +} + +// Stringer adds the field key with val.String() (or null if val is nil) to the *Event context. +func (e *Event) Stringer(key string, val fmt.Stringer) *Event { + if e == nil { + return e + } + + if val != nil { + e.buf = enc.AppendString(enc.AppendKey(e.buf, key), val.String()) + return e + } + + e.buf = enc.AppendInterface(enc.AppendKey(e.buf, key), nil) + return e +} + +// Bytes adds the field key with val as a string to the *Event context. +// +// Runes outside of normal ASCII ranges will be hex-encoded in the resulting +// JSON. +func (e *Event) Bytes(key string, val []byte) *Event { + if e == nil { + return e + } + e.buf = enc.AppendBytes(enc.AppendKey(e.buf, key), val) + return e +} + +// Hex adds the field key with val as a hex string to the *Event context. +func (e *Event) Hex(key string, val []byte) *Event { + if e == nil { + return e + } + e.buf = enc.AppendHex(enc.AppendKey(e.buf, key), val) + return e +} + +// RawJSON adds already encoded JSON to the log line under key. +// +// No sanity check is performed on b; it must not contain carriage returns and +// be valid JSON. +func (e *Event) RawJSON(key string, b []byte) *Event { + if e == nil { + return e + } + e.buf = appendJSON(enc.AppendKey(e.buf, key), b) + return e +} + +// AnErr adds the field key with serialized err to the *Event context. +// If err is nil, no field is added. +func (e *Event) AnErr(key string, err error) *Event { + if e == nil { + return e + } + switch m := ErrorMarshalFunc(err).(type) { + case nil: + return e + case LogObjectMarshaler: + return e.Object(key, m) + case error: + if m == nil || isNilValue(m) { + return e + } else { + return e.Str(key, m.Error()) + } + case string: + return e.Str(key, m) + default: + return e.Interface(key, m) + } +} + +// Errs adds the field key with errs as an array of serialized errors to the +// *Event context. +func (e *Event) Errs(key string, errs []error) *Event { + if e == nil { + return e + } + arr := Arr() + for _, err := range errs { + switch m := ErrorMarshalFunc(err).(type) { + case LogObjectMarshaler: + arr = arr.Object(m) + case error: + arr = arr.Err(m) + case string: + arr = arr.Str(m) + default: + arr = arr.Interface(m) + } + } + + return e.Array(key, arr) +} + +// Err adds the field "error" with serialized err to the *Event context. +// If err is nil, no field is added. +// +// To customize the key name, change zerolog.ErrorFieldName. +// +// If Stack() has been called before and zerolog.ErrorStackMarshaler is defined, +// the err is passed to ErrorStackMarshaler and the result is appended to the +// zerolog.ErrorStackFieldName. +func (e *Event) Err(err error) *Event { + if e == nil { + return e + } + if e.stack && ErrorStackMarshaler != nil { + switch m := ErrorStackMarshaler(err).(type) { + case nil: + case LogObjectMarshaler: + e.Object(ErrorStackFieldName, m) + case error: + if m != nil && !isNilValue(m) { + e.Str(ErrorStackFieldName, m.Error()) + } + case string: + e.Str(ErrorStackFieldName, m) + default: + e.Interface(ErrorStackFieldName, m) + } + } + return e.AnErr(ErrorFieldName, err) +} + +// Stack enables stack trace printing for the error passed to Err(). +// +// ErrorStackMarshaler must be set for this method to do something. +func (e *Event) Stack() *Event { + if e != nil { + e.stack = true + } + return e +} + +// Bool adds the field key with val as a bool to the *Event context. +func (e *Event) Bool(key string, b bool) *Event { + if e == nil { + return e + } + e.buf = enc.AppendBool(enc.AppendKey(e.buf, key), b) + return e +} + +// Bools adds the field key with val as a []bool to the *Event context. +func (e *Event) Bools(key string, b []bool) *Event { + if e == nil { + return e + } + e.buf = enc.AppendBools(enc.AppendKey(e.buf, key), b) + return e +} + +// Int adds the field key with i as a int to the *Event context. +func (e *Event) Int(key string, i int) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInt(enc.AppendKey(e.buf, key), i) + return e +} + +// Ints adds the field key with i as a []int to the *Event context. +func (e *Event) Ints(key string, i []int) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInts(enc.AppendKey(e.buf, key), i) + return e +} + +// Int8 adds the field key with i as a int8 to the *Event context. +func (e *Event) Int8(key string, i int8) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInt8(enc.AppendKey(e.buf, key), i) + return e +} + +// Ints8 adds the field key with i as a []int8 to the *Event context. +func (e *Event) Ints8(key string, i []int8) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInts8(enc.AppendKey(e.buf, key), i) + return e +} + +// Int16 adds the field key with i as a int16 to the *Event context. +func (e *Event) Int16(key string, i int16) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInt16(enc.AppendKey(e.buf, key), i) + return e +} + +// Ints16 adds the field key with i as a []int16 to the *Event context. +func (e *Event) Ints16(key string, i []int16) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInts16(enc.AppendKey(e.buf, key), i) + return e +} + +// Int32 adds the field key with i as a int32 to the *Event context. +func (e *Event) Int32(key string, i int32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInt32(enc.AppendKey(e.buf, key), i) + return e +} + +// Ints32 adds the field key with i as a []int32 to the *Event context. +func (e *Event) Ints32(key string, i []int32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInts32(enc.AppendKey(e.buf, key), i) + return e +} + +// Int64 adds the field key with i as a int64 to the *Event context. +func (e *Event) Int64(key string, i int64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInt64(enc.AppendKey(e.buf, key), i) + return e +} + +// Ints64 adds the field key with i as a []int64 to the *Event context. +func (e *Event) Ints64(key string, i []int64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendInts64(enc.AppendKey(e.buf, key), i) + return e +} + +// Uint adds the field key with i as a uint to the *Event context. +func (e *Event) Uint(key string, i uint) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUint(enc.AppendKey(e.buf, key), i) + return e +} + +// Uints adds the field key with i as a []int to the *Event context. +func (e *Event) Uints(key string, i []uint) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUints(enc.AppendKey(e.buf, key), i) + return e +} + +// Uint8 adds the field key with i as a uint8 to the *Event context. +func (e *Event) Uint8(key string, i uint8) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUint8(enc.AppendKey(e.buf, key), i) + return e +} + +// Uints8 adds the field key with i as a []int8 to the *Event context. +func (e *Event) Uints8(key string, i []uint8) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUints8(enc.AppendKey(e.buf, key), i) + return e +} + +// Uint16 adds the field key with i as a uint16 to the *Event context. +func (e *Event) Uint16(key string, i uint16) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUint16(enc.AppendKey(e.buf, key), i) + return e +} + +// Uints16 adds the field key with i as a []int16 to the *Event context. +func (e *Event) Uints16(key string, i []uint16) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUints16(enc.AppendKey(e.buf, key), i) + return e +} + +// Uint32 adds the field key with i as a uint32 to the *Event context. +func (e *Event) Uint32(key string, i uint32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUint32(enc.AppendKey(e.buf, key), i) + return e +} + +// Uints32 adds the field key with i as a []int32 to the *Event context. +func (e *Event) Uints32(key string, i []uint32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUints32(enc.AppendKey(e.buf, key), i) + return e +} + +// Uint64 adds the field key with i as a uint64 to the *Event context. +func (e *Event) Uint64(key string, i uint64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUint64(enc.AppendKey(e.buf, key), i) + return e +} + +// Uints64 adds the field key with i as a []int64 to the *Event context. +func (e *Event) Uints64(key string, i []uint64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendUints64(enc.AppendKey(e.buf, key), i) + return e +} + +// Float32 adds the field key with f as a float32 to the *Event context. +func (e *Event) Float32(key string, f float32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendFloat32(enc.AppendKey(e.buf, key), f) + return e +} + +// Floats32 adds the field key with f as a []float32 to the *Event context. +func (e *Event) Floats32(key string, f []float32) *Event { + if e == nil { + return e + } + e.buf = enc.AppendFloats32(enc.AppendKey(e.buf, key), f) + return e +} + +// Float64 adds the field key with f as a float64 to the *Event context. +func (e *Event) Float64(key string, f float64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendFloat64(enc.AppendKey(e.buf, key), f) + return e +} + +// Floats64 adds the field key with f as a []float64 to the *Event context. +func (e *Event) Floats64(key string, f []float64) *Event { + if e == nil { + return e + } + e.buf = enc.AppendFloats64(enc.AppendKey(e.buf, key), f) + return e +} + +// Timestamp adds the current local time as UNIX timestamp to the *Event context with the "time" key. +// To customize the key name, change zerolog.TimestampFieldName. +// +// NOTE: It won't dedupe the "time" key if the *Event (or *Context) has one +// already. +func (e *Event) Timestamp() *Event { + if e == nil { + return e + } + e.buf = enc.AppendTime(enc.AppendKey(e.buf, TimestampFieldName), TimestampFunc(), TimeFieldFormat) + return e +} + +// Time adds the field key with t formated as string using zerolog.TimeFieldFormat. +func (e *Event) Time(key string, t time.Time) *Event { + if e == nil { + return e + } + e.buf = enc.AppendTime(enc.AppendKey(e.buf, key), t, TimeFieldFormat) + return e +} + +// Times adds the field key with t formated as string using zerolog.TimeFieldFormat. +func (e *Event) Times(key string, t []time.Time) *Event { + if e == nil { + return e + } + e.buf = enc.AppendTimes(enc.AppendKey(e.buf, key), t, TimeFieldFormat) + return e +} + +// Dur adds the field key with duration d stored as zerolog.DurationFieldUnit. +// If zerolog.DurationFieldInteger is true, durations are rendered as integer +// instead of float. +func (e *Event) Dur(key string, d time.Duration) *Event { + if e == nil { + return e + } + e.buf = enc.AppendDuration(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger) + return e +} + +// Durs adds the field key with duration d stored as zerolog.DurationFieldUnit. +// If zerolog.DurationFieldInteger is true, durations are rendered as integer +// instead of float. +func (e *Event) Durs(key string, d []time.Duration) *Event { + if e == nil { + return e + } + e.buf = enc.AppendDurations(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger) + return e +} + +// TimeDiff adds the field key with positive duration between time t and start. +// If time t is not greater than start, duration will be 0. +// Duration format follows the same principle as Dur(). +func (e *Event) TimeDiff(key string, t time.Time, start time.Time) *Event { + if e == nil { + return e + } + var d time.Duration + if t.After(start) { + d = t.Sub(start) + } + e.buf = enc.AppendDuration(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger) + return e +} + +// Interface adds the field key with i marshaled using reflection. +func (e *Event) Interface(key string, i interface{}) *Event { + if e == nil { + return e + } + if obj, ok := i.(LogObjectMarshaler); ok { + return e.Object(key, obj) + } + e.buf = enc.AppendInterface(enc.AppendKey(e.buf, key), i) + return e +} + +// CallerSkipFrame instructs any future Caller calls to skip the specified number of frames. +// This includes those added via hooks from the context. +func (e *Event) CallerSkipFrame(skip int) *Event { + e.skipFrame += skip + return e +} + +// Caller adds the file:line of the caller with the zerolog.CallerFieldName key. +// The argument skip is the number of stack frames to ascend +// Skip If not passed, use the global variable CallerSkipFrameCount +func (e *Event) Caller(skip ...int) *Event { + sk := CallerSkipFrameCount + if len(skip) > 0 { + sk = skip[0] + CallerSkipFrameCount + } + return e.caller(sk) +} + +func (e *Event) caller(skip int) *Event { + if e == nil { + return e + } + _, file, line, ok := runtime.Caller(skip + e.skipFrame) + if !ok { + return e + } + e.buf = enc.AppendString(enc.AppendKey(e.buf, CallerFieldName), CallerMarshalFunc(file, line)) + return e +} + +// IPAddr adds IPv4 or IPv6 Address to the event +func (e *Event) IPAddr(key string, ip net.IP) *Event { + if e == nil { + return e + } + e.buf = enc.AppendIPAddr(enc.AppendKey(e.buf, key), ip) + return e +} + +// IPPrefix adds IPv4 or IPv6 Prefix (address and mask) to the event +func (e *Event) IPPrefix(key string, pfx net.IPNet) *Event { + if e == nil { + return e + } + e.buf = enc.AppendIPPrefix(enc.AppendKey(e.buf, key), pfx) + return e +} + +// MACAddr adds MAC address to the event +func (e *Event) MACAddr(key string, ha net.HardwareAddr) *Event { + if e == nil { + return e + } + e.buf = enc.AppendMACAddr(enc.AppendKey(e.buf, key), ha) + return e +} diff --git a/vendor/github.com/rs/zerolog/fields.go b/vendor/github.com/rs/zerolog/fields.go new file mode 100644 index 0000000..cf3c3e9 --- /dev/null +++ b/vendor/github.com/rs/zerolog/fields.go @@ -0,0 +1,253 @@ +package zerolog + +import ( + "net" + "sort" + "time" + "unsafe" +) + +func isNilValue(i interface{}) bool { + return (*[2]uintptr)(unsafe.Pointer(&i))[1] == 0 +} + +func appendFields(dst []byte, fields map[string]interface{}) []byte { + keys := make([]string, 0, len(fields)) + for key := range fields { + keys = append(keys, key) + } + sort.Strings(keys) + for _, key := range keys { + dst = enc.AppendKey(dst, key) + val := fields[key] + if val, ok := val.(LogObjectMarshaler); ok { + e := newEvent(nil, 0) + e.buf = e.buf[:0] + e.appendObject(val) + dst = append(dst, e.buf...) + putEvent(e) + continue + } + switch val := val.(type) { + case string: + dst = enc.AppendString(dst, val) + case []byte: + dst = enc.AppendBytes(dst, val) + case error: + switch m := ErrorMarshalFunc(val).(type) { + case LogObjectMarshaler: + e := newEvent(nil, 0) + e.buf = e.buf[:0] + e.appendObject(m) + dst = append(dst, e.buf...) + putEvent(e) + case error: + if m == nil || isNilValue(m) { + dst = enc.AppendNil(dst) + } else { + dst = enc.AppendString(dst, m.Error()) + } + case string: + dst = enc.AppendString(dst, m) + default: + dst = enc.AppendInterface(dst, m) + } + case []error: + dst = enc.AppendArrayStart(dst) + for i, err := range val { + switch m := ErrorMarshalFunc(err).(type) { + case LogObjectMarshaler: + e := newEvent(nil, 0) + e.buf = e.buf[:0] + e.appendObject(m) + dst = append(dst, e.buf...) + putEvent(e) + case error: + if m == nil || isNilValue(m) { + dst = enc.AppendNil(dst) + } else { + dst = enc.AppendString(dst, m.Error()) + } + case string: + dst = enc.AppendString(dst, m) + default: + dst = enc.AppendInterface(dst, m) + } + + if i < (len(val) - 1) { + enc.AppendArrayDelim(dst) + } + } + dst = enc.AppendArrayEnd(dst) + case bool: + dst = enc.AppendBool(dst, val) + case int: + dst = enc.AppendInt(dst, val) + case int8: + dst = enc.AppendInt8(dst, val) + case int16: + dst = enc.AppendInt16(dst, val) + case int32: + dst = enc.AppendInt32(dst, val) + case int64: + dst = enc.AppendInt64(dst, val) + case uint: + dst = enc.AppendUint(dst, val) + case uint8: + dst = enc.AppendUint8(dst, val) + case uint16: + dst = enc.AppendUint16(dst, val) + case uint32: + dst = enc.AppendUint32(dst, val) + case uint64: + dst = enc.AppendUint64(dst, val) + case float32: + dst = enc.AppendFloat32(dst, val) + case float64: + dst = enc.AppendFloat64(dst, val) + case time.Time: + dst = enc.AppendTime(dst, val, TimeFieldFormat) + case time.Duration: + dst = enc.AppendDuration(dst, val, DurationFieldUnit, DurationFieldInteger) + case *string: + if val != nil { + dst = enc.AppendString(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *bool: + if val != nil { + dst = enc.AppendBool(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *int: + if val != nil { + dst = enc.AppendInt(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *int8: + if val != nil { + dst = enc.AppendInt8(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *int16: + if val != nil { + dst = enc.AppendInt16(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *int32: + if val != nil { + dst = enc.AppendInt32(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *int64: + if val != nil { + dst = enc.AppendInt64(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *uint: + if val != nil { + dst = enc.AppendUint(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *uint8: + if val != nil { + dst = enc.AppendUint8(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *uint16: + if val != nil { + dst = enc.AppendUint16(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *uint32: + if val != nil { + dst = enc.AppendUint32(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *uint64: + if val != nil { + dst = enc.AppendUint64(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *float32: + if val != nil { + dst = enc.AppendFloat32(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *float64: + if val != nil { + dst = enc.AppendFloat64(dst, *val) + } else { + dst = enc.AppendNil(dst) + } + case *time.Time: + if val != nil { + dst = enc.AppendTime(dst, *val, TimeFieldFormat) + } else { + dst = enc.AppendNil(dst) + } + case *time.Duration: + if val != nil { + dst = enc.AppendDuration(dst, *val, DurationFieldUnit, DurationFieldInteger) + } else { + dst = enc.AppendNil(dst) + } + case []string: + dst = enc.AppendStrings(dst, val) + case []bool: + dst = enc.AppendBools(dst, val) + case []int: + dst = enc.AppendInts(dst, val) + case []int8: + dst = enc.AppendInts8(dst, val) + case []int16: + dst = enc.AppendInts16(dst, val) + case []int32: + dst = enc.AppendInts32(dst, val) + case []int64: + dst = enc.AppendInts64(dst, val) + case []uint: + dst = enc.AppendUints(dst, val) + // case []uint8: + // dst = enc.AppendUints8(dst, val) + case []uint16: + dst = enc.AppendUints16(dst, val) + case []uint32: + dst = enc.AppendUints32(dst, val) + case []uint64: + dst = enc.AppendUints64(dst, val) + case []float32: + dst = enc.AppendFloats32(dst, val) + case []float64: + dst = enc.AppendFloats64(dst, val) + case []time.Time: + dst = enc.AppendTimes(dst, val, TimeFieldFormat) + case []time.Duration: + dst = enc.AppendDurations(dst, val, DurationFieldUnit, DurationFieldInteger) + case nil: + dst = enc.AppendNil(dst) + case net.IP: + dst = enc.AppendIPAddr(dst, val) + case net.IPNet: + dst = enc.AppendIPPrefix(dst, val) + case net.HardwareAddr: + dst = enc.AppendMACAddr(dst, val) + default: + dst = enc.AppendInterface(dst, val) + } + } + return dst +} diff --git a/vendor/github.com/rs/zerolog/globals.go b/vendor/github.com/rs/zerolog/globals.go new file mode 100644 index 0000000..2c60382 --- /dev/null +++ b/vendor/github.com/rs/zerolog/globals.go @@ -0,0 +1,129 @@ +package zerolog + +import ( + "strconv" + "sync/atomic" + "time" +) + +const ( + // TimeFormatUnix defines a time format that makes time fields to be + // serialized as Unix timestamp integers. + TimeFormatUnix = "" + + // TimeFormatUnixMs defines a time format that makes time fields to be + // serialized as Unix timestamp integers in milliseconds. + TimeFormatUnixMs = "UNIXMS" + + // TimeFormatUnixMicro defines a time format that makes time fields to be + // serialized as Unix timestamp integers in microseconds. + TimeFormatUnixMicro = "UNIXMICRO" +) + +var ( + // TimestampFieldName is the field name used for the timestamp field. + TimestampFieldName = "time" + + // LevelFieldName is the field name used for the level field. + LevelFieldName = "level" + + // LevelTraceValue is the value used for the trace level field. + LevelTraceValue = "trace" + // LevelDebugValue is the value used for the debug level field. + LevelDebugValue = "debug" + // LevelInfoValue is the value used for the info level field. + LevelInfoValue = "info" + // LevelWarnValue is the value used for the warn level field. + LevelWarnValue = "warn" + // LevelErrorValue is the value used for the error level field. + LevelErrorValue = "error" + // LevelFatalValue is the value used for the fatal level field. + LevelFatalValue = "fatal" + // LevelPanicValue is the value used for the panic level field. + LevelPanicValue = "panic" + + // LevelFieldMarshalFunc allows customization of global level field marshaling. + LevelFieldMarshalFunc = func(l Level) string { + return l.String() + } + + // MessageFieldName is the field name used for the message field. + MessageFieldName = "message" + + // ErrorFieldName is the field name used for error fields. + ErrorFieldName = "error" + + // CallerFieldName is the field name used for caller field. + CallerFieldName = "caller" + + // CallerSkipFrameCount is the number of stack frames to skip to find the caller. + CallerSkipFrameCount = 2 + + // CallerMarshalFunc allows customization of global caller marshaling + CallerMarshalFunc = func(file string, line int) string { + return file + ":" + strconv.Itoa(line) + } + + // ErrorStackFieldName is the field name used for error stacks. + ErrorStackFieldName = "stack" + + // ErrorStackMarshaler extract the stack from err if any. + ErrorStackMarshaler func(err error) interface{} + + // ErrorMarshalFunc allows customization of global error marshaling + ErrorMarshalFunc = func(err error) interface{} { + return err + } + + // TimeFieldFormat defines the time format of the Time field type. If set to + // TimeFormatUnix, TimeFormatUnixMs or TimeFormatUnixMicro, the time is formatted as an UNIX + // timestamp as integer. + TimeFieldFormat = time.RFC3339 + + // TimestampFunc defines the function called to generate a timestamp. + TimestampFunc = time.Now + + // DurationFieldUnit defines the unit for time.Duration type fields added + // using the Dur method. + DurationFieldUnit = time.Millisecond + + // DurationFieldInteger renders Dur fields as integer instead of float if + // set to true. + DurationFieldInteger = false + + // ErrorHandler is called whenever zerolog fails to write an event on its + // output. If not set, an error is printed on the stderr. This handler must + // be thread safe and non-blocking. + ErrorHandler func(err error) +) + +var ( + gLevel = new(int32) + disableSampling = new(int32) +) + +// SetGlobalLevel sets the global override for log level. If this +// values is raised, all Loggers will use at least this value. +// +// To globally disable logs, set GlobalLevel to Disabled. +func SetGlobalLevel(l Level) { + atomic.StoreInt32(gLevel, int32(l)) +} + +// GlobalLevel returns the current global log level +func GlobalLevel() Level { + return Level(atomic.LoadInt32(gLevel)) +} + +// DisableSampling will disable sampling in all Loggers if true. +func DisableSampling(v bool) { + var i int32 + if v { + i = 1 + } + atomic.StoreInt32(disableSampling, i) +} + +func samplingDisabled() bool { + return atomic.LoadInt32(disableSampling) == 1 +} diff --git a/vendor/github.com/rs/zerolog/go.mod b/vendor/github.com/rs/zerolog/go.mod new file mode 100644 index 0000000..ab04df9 --- /dev/null +++ b/vendor/github.com/rs/zerolog/go.mod @@ -0,0 +1,8 @@ +module github.com/rs/zerolog + +require ( + github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e + github.com/pkg/errors v0.9.1 + github.com/rs/xid v1.2.1 + golang.org/x/tools v0.1.0 +) diff --git a/vendor/github.com/rs/zerolog/go.sum b/vendor/github.com/rs/zerolog/go.sum new file mode 100644 index 0000000..37b2ffc --- /dev/null +++ b/vendor/github.com/rs/zerolog/go.sum @@ -0,0 +1,32 @@ +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +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-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/vendor/github.com/rs/zerolog/go112.go b/vendor/github.com/rs/zerolog/go112.go new file mode 100644 index 0000000..e7b5a1b --- /dev/null +++ b/vendor/github.com/rs/zerolog/go112.go @@ -0,0 +1,7 @@ +// +build go1.12 + +package zerolog + +// Since go 1.12, some auto generated init functions are hidden from +// runtime.Caller. +const contextCallerSkipFrameCount = 2 diff --git a/vendor/github.com/rs/zerolog/hook.go b/vendor/github.com/rs/zerolog/hook.go new file mode 100644 index 0000000..ec6effc --- /dev/null +++ b/vendor/github.com/rs/zerolog/hook.go @@ -0,0 +1,64 @@ +package zerolog + +// Hook defines an interface to a log hook. +type Hook interface { + // Run runs the hook with the event. + Run(e *Event, level Level, message string) +} + +// HookFunc is an adaptor to allow the use of an ordinary function +// as a Hook. +type HookFunc func(e *Event, level Level, message string) + +// Run implements the Hook interface. +func (h HookFunc) Run(e *Event, level Level, message string) { + h(e, level, message) +} + +// LevelHook applies a different hook for each level. +type LevelHook struct { + NoLevelHook, TraceHook, DebugHook, InfoHook, WarnHook, ErrorHook, FatalHook, PanicHook Hook +} + +// Run implements the Hook interface. +func (h LevelHook) Run(e *Event, level Level, message string) { + switch level { + case TraceLevel: + if h.TraceHook != nil { + h.TraceHook.Run(e, level, message) + } + case DebugLevel: + if h.DebugHook != nil { + h.DebugHook.Run(e, level, message) + } + case InfoLevel: + if h.InfoHook != nil { + h.InfoHook.Run(e, level, message) + } + case WarnLevel: + if h.WarnHook != nil { + h.WarnHook.Run(e, level, message) + } + case ErrorLevel: + if h.ErrorHook != nil { + h.ErrorHook.Run(e, level, message) + } + case FatalLevel: + if h.FatalHook != nil { + h.FatalHook.Run(e, level, message) + } + case PanicLevel: + if h.PanicHook != nil { + h.PanicHook.Run(e, level, message) + } + case NoLevel: + if h.NoLevelHook != nil { + h.NoLevelHook.Run(e, level, message) + } + } +} + +// NewLevelHook returns a new LevelHook. +func NewLevelHook() LevelHook { + return LevelHook{} +} diff --git a/vendor/github.com/rs/zerolog/internal/cbor/README.md b/vendor/github.com/rs/zerolog/internal/cbor/README.md new file mode 100644 index 0000000..92c2e8c --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/README.md @@ -0,0 +1,56 @@ +## Reference: + CBOR Encoding is described in [RFC7049](https://tools.ietf.org/html/rfc7049) + +## Comparison of JSON vs CBOR + +Two main areas of reduction are: + +1. CPU usage to write a log msg +2. Size (in bytes) of log messages. + + +CPU Usage savings are below: +``` +name JSON time/op CBOR time/op delta +Info-32 15.3ns ± 1% 11.7ns ± 3% -23.78% (p=0.000 n=9+10) +ContextFields-32 16.2ns ± 2% 12.3ns ± 3% -23.97% (p=0.000 n=9+9) +ContextAppend-32 6.70ns ± 0% 6.20ns ± 0% -7.44% (p=0.000 n=9+9) +LogFields-32 66.4ns ± 0% 24.6ns ± 2% -62.89% (p=0.000 n=10+9) +LogArrayObject-32 911ns ±11% 768ns ± 6% -15.64% (p=0.000 n=10+10) +LogFieldType/Floats-32 70.3ns ± 2% 29.5ns ± 1% -57.98% (p=0.000 n=10+10) +LogFieldType/Err-32 14.0ns ± 3% 12.1ns ± 8% -13.20% (p=0.000 n=8+10) +LogFieldType/Dur-32 17.2ns ± 2% 13.1ns ± 1% -24.27% (p=0.000 n=10+9) +LogFieldType/Object-32 54.3ns ±11% 52.3ns ± 7% ~ (p=0.239 n=10+10) +LogFieldType/Ints-32 20.3ns ± 2% 15.1ns ± 2% -25.50% (p=0.000 n=9+10) +LogFieldType/Interfaces-32 642ns ±11% 621ns ± 9% ~ (p=0.118 n=10+10) +LogFieldType/Interface(Objects)-32 635ns ±13% 632ns ± 9% ~ (p=0.592 n=10+10) +LogFieldType/Times-32 294ns ± 0% 27ns ± 1% -90.71% (p=0.000 n=10+9) +LogFieldType/Durs-32 121ns ± 0% 33ns ± 2% -72.44% (p=0.000 n=9+9) +LogFieldType/Interface(Object)-32 56.6ns ± 8% 52.3ns ± 8% -7.54% (p=0.007 n=10+10) +LogFieldType/Errs-32 17.8ns ± 3% 16.1ns ± 2% -9.71% (p=0.000 n=10+9) +LogFieldType/Time-32 40.5ns ± 1% 12.7ns ± 6% -68.66% (p=0.000 n=8+9) +LogFieldType/Bool-32 12.0ns ± 5% 10.2ns ± 2% -15.18% (p=0.000 n=10+8) +LogFieldType/Bools-32 17.2ns ± 2% 12.6ns ± 4% -26.63% (p=0.000 n=10+10) +LogFieldType/Int-32 12.3ns ± 2% 11.2ns ± 4% -9.27% (p=0.000 n=9+10) +LogFieldType/Float-32 16.7ns ± 1% 12.6ns ± 2% -24.42% (p=0.000 n=7+9) +LogFieldType/Str-32 12.7ns ± 7% 11.3ns ± 7% -10.88% (p=0.000 n=10+9) +LogFieldType/Strs-32 20.3ns ± 3% 18.2ns ± 3% -10.25% (p=0.000 n=9+10) +LogFieldType/Interface-32 183ns ±12% 175ns ± 9% ~ (p=0.078 n=10+10) +``` + +Log message size savings is greatly dependent on the number and type of fields in the log message. +Assuming this log message (with an Integer, timestamp and string, in addition to level). + +`{"level":"error","Fault":41650,"time":"2018-04-01T15:18:19-07:00","message":"Some Message"}` + +Two measurements were done for the log file sizes - one without any compression, second +using [compress/zlib](https://golang.org/pkg/compress/zlib/). + +Results for 10,000 log messages: + +| Log Format | Plain File Size (in KB) | Compressed File Size (in KB) | +| :--- | :---: | :---: | +| JSON | 920 | 28 | +| CBOR | 550 | 28 | + +The example used to calculate the above data is available in [Examples](examples). diff --git a/vendor/github.com/rs/zerolog/internal/cbor/base.go b/vendor/github.com/rs/zerolog/internal/cbor/base.go new file mode 100644 index 0000000..58cd082 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/base.go @@ -0,0 +1,11 @@ +package cbor + +type Encoder struct{} + +// AppendKey adds a key (string) to the binary encoded log message +func (e Encoder) AppendKey(dst []byte, key string) []byte { + if len(dst) < 1 { + dst = e.AppendBeginMarker(dst) + } + return e.AppendString(dst, key) +} \ No newline at end of file diff --git a/vendor/github.com/rs/zerolog/internal/cbor/cbor.go b/vendor/github.com/rs/zerolog/internal/cbor/cbor.go new file mode 100644 index 0000000..969f591 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/cbor.go @@ -0,0 +1,100 @@ +// Package cbor provides primitives for storing different data +// in the CBOR (binary) format. CBOR is defined in RFC7049. +package cbor + +import "time" + +const ( + majorOffset = 5 + additionalMax = 23 + + // Non Values. + additionalTypeBoolFalse byte = 20 + additionalTypeBoolTrue byte = 21 + additionalTypeNull byte = 22 + + // Integer (+ve and -ve) Sub-types. + additionalTypeIntUint8 byte = 24 + additionalTypeIntUint16 byte = 25 + additionalTypeIntUint32 byte = 26 + additionalTypeIntUint64 byte = 27 + + // Float Sub-types. + additionalTypeFloat16 byte = 25 + additionalTypeFloat32 byte = 26 + additionalTypeFloat64 byte = 27 + additionalTypeBreak byte = 31 + + // Tag Sub-types. + additionalTypeTimestamp byte = 01 + + // Extended Tags - from https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml + additionalTypeTagNetworkAddr uint16 = 260 + additionalTypeTagNetworkPrefix uint16 = 261 + additionalTypeEmbeddedJSON uint16 = 262 + additionalTypeTagHexString uint16 = 263 + + // Unspecified number of elements. + additionalTypeInfiniteCount byte = 31 +) +const ( + majorTypeUnsignedInt byte = iota << majorOffset // Major type 0 + majorTypeNegativeInt // Major type 1 + majorTypeByteString // Major type 2 + majorTypeUtf8String // Major type 3 + majorTypeArray // Major type 4 + majorTypeMap // Major type 5 + majorTypeTags // Major type 6 + majorTypeSimpleAndFloat // Major type 7 +) + +const ( + maskOutAdditionalType byte = (7 << majorOffset) + maskOutMajorType byte = 31 +) + +const ( + float32Nan = "\xfa\x7f\xc0\x00\x00" + float32PosInfinity = "\xfa\x7f\x80\x00\x00" + float32NegInfinity = "\xfa\xff\x80\x00\x00" + float64Nan = "\xfb\x7f\xf8\x00\x00\x00\x00\x00\x00" + float64PosInfinity = "\xfb\x7f\xf0\x00\x00\x00\x00\x00\x00" + float64NegInfinity = "\xfb\xff\xf0\x00\x00\x00\x00\x00\x00" +) + +// IntegerTimeFieldFormat indicates the format of timestamp decoded +// from an integer (time in seconds). +var IntegerTimeFieldFormat = time.RFC3339 + +// NanoTimeFieldFormat indicates the format of timestamp decoded +// from a float value (time in seconds and nano seconds). +var NanoTimeFieldFormat = time.RFC3339Nano + +func appendCborTypePrefix(dst []byte, major byte, number uint64) []byte { + byteCount := 8 + var minor byte + switch { + case number < 256: + byteCount = 1 + minor = additionalTypeIntUint8 + + case number < 65536: + byteCount = 2 + minor = additionalTypeIntUint16 + + case number < 4294967296: + byteCount = 4 + minor = additionalTypeIntUint32 + + default: + byteCount = 8 + minor = additionalTypeIntUint64 + + } + dst = append(dst, byte(major|minor)) + byteCount-- + for ; byteCount >= 0; byteCount-- { + dst = append(dst, byte(number>>(uint(byteCount)*8))) + } + return dst +} diff --git a/vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go b/vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go new file mode 100644 index 0000000..e3cf3b7 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go @@ -0,0 +1,614 @@ +package cbor + +// This file contains code to decode a stream of CBOR Data into JSON. + +import ( + "bufio" + "bytes" + "fmt" + "io" + "math" + "net" + "runtime" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +var decodeTimeZone *time.Location + +const hexTable = "0123456789abcdef" + +const isFloat32 = 4 +const isFloat64 = 8 + +func readNBytes(src *bufio.Reader, n int) []byte { + ret := make([]byte, n) + for i := 0; i < n; i++ { + ch, e := src.ReadByte() + if e != nil { + panic(fmt.Errorf("Tried to Read %d Bytes.. But hit end of file", n)) + } + ret[i] = ch + } + return ret +} + +func readByte(src *bufio.Reader) byte { + b, e := src.ReadByte() + if e != nil { + panic(fmt.Errorf("Tried to Read 1 Byte.. But hit end of file")) + } + return b +} + +func decodeIntAdditonalType(src *bufio.Reader, minor byte) int64 { + val := int64(0) + if minor <= 23 { + val = int64(minor) + } else { + bytesToRead := 0 + switch minor { + case additionalTypeIntUint8: + bytesToRead = 1 + case additionalTypeIntUint16: + bytesToRead = 2 + case additionalTypeIntUint32: + bytesToRead = 4 + case additionalTypeIntUint64: + bytesToRead = 8 + default: + panic(fmt.Errorf("Invalid Additional Type: %d in decodeInteger (expected <28)", minor)) + } + pb := readNBytes(src, bytesToRead) + for i := 0; i < bytesToRead; i++ { + val = val * 256 + val += int64(pb[i]) + } + } + return val +} + +func decodeInteger(src *bufio.Reader) int64 { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeUnsignedInt && major != majorTypeNegativeInt { + panic(fmt.Errorf("Major type is: %d in decodeInteger!! (expected 0 or 1)", major)) + } + val := decodeIntAdditonalType(src, minor) + if major == 0 { + return val + } + return (-1 - val) +} + +func decodeFloat(src *bufio.Reader) (float64, int) { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeSimpleAndFloat { + panic(fmt.Errorf("Incorrect Major type is: %d in decodeFloat", major)) + } + + switch minor { + case additionalTypeFloat16: + panic(fmt.Errorf("float16 is not suppported in decodeFloat")) + + case additionalTypeFloat32: + pb := readNBytes(src, 4) + switch string(pb) { + case float32Nan: + return math.NaN(), isFloat32 + case float32PosInfinity: + return math.Inf(0), isFloat32 + case float32NegInfinity: + return math.Inf(-1), isFloat32 + } + n := uint32(0) + for i := 0; i < 4; i++ { + n = n * 256 + n += uint32(pb[i]) + } + val := math.Float32frombits(n) + return float64(val), isFloat32 + case additionalTypeFloat64: + pb := readNBytes(src, 8) + switch string(pb) { + case float64Nan: + return math.NaN(), isFloat64 + case float64PosInfinity: + return math.Inf(0), isFloat64 + case float64NegInfinity: + return math.Inf(-1), isFloat64 + } + n := uint64(0) + for i := 0; i < 8; i++ { + n = n * 256 + n += uint64(pb[i]) + } + val := math.Float64frombits(n) + return val, isFloat64 + } + panic(fmt.Errorf("Invalid Additional Type: %d in decodeFloat", minor)) +} + +func decodeStringComplex(dst []byte, s string, pos uint) []byte { + i := int(pos) + start := 0 + + for i < len(s) { + b := s[i] + if b >= utf8.RuneSelf { + r, size := utf8.DecodeRuneInString(s[i:]) + if r == utf8.RuneError && size == 1 { + // In case of error, first append previous simple characters to + // the byte slice if any and append a replacement character code + // in place of the invalid sequence. + if start < i { + dst = append(dst, s[start:i]...) + } + dst = append(dst, `\ufffd`...) + i += size + start = i + continue + } + i += size + continue + } + if b >= 0x20 && b <= 0x7e && b != '\\' && b != '"' { + i++ + continue + } + // We encountered a character that needs to be encoded. + // Let's append the previous simple characters to the byte slice + // and switch our operation to read and encode the remainder + // characters byte-by-byte. + if start < i { + dst = append(dst, s[start:i]...) + } + switch b { + case '"', '\\': + dst = append(dst, '\\', b) + case '\b': + dst = append(dst, '\\', 'b') + case '\f': + dst = append(dst, '\\', 'f') + case '\n': + dst = append(dst, '\\', 'n') + case '\r': + dst = append(dst, '\\', 'r') + case '\t': + dst = append(dst, '\\', 't') + default: + dst = append(dst, '\\', 'u', '0', '0', hexTable[b>>4], hexTable[b&0xF]) + } + i++ + start = i + } + if start < len(s) { + dst = append(dst, s[start:]...) + } + return dst +} + +func decodeString(src *bufio.Reader, noQuotes bool) []byte { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeByteString { + panic(fmt.Errorf("Major type is: %d in decodeString", major)) + } + result := []byte{} + if !noQuotes { + result = append(result, '"') + } + length := decodeIntAdditonalType(src, minor) + len := int(length) + pbs := readNBytes(src, len) + result = append(result, pbs...) + if noQuotes { + return result + } + return append(result, '"') +} + +func decodeUTF8String(src *bufio.Reader) []byte { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeUtf8String { + panic(fmt.Errorf("Major type is: %d in decodeUTF8String", major)) + } + result := []byte{'"'} + length := decodeIntAdditonalType(src, minor) + len := int(length) + pbs := readNBytes(src, len) + + for i := 0; i < len; i++ { + // Check if the character needs encoding. Control characters, slashes, + // and the double quote need json encoding. Bytes above the ascii + // boundary needs utf8 encoding. + if pbs[i] < 0x20 || pbs[i] > 0x7e || pbs[i] == '\\' || pbs[i] == '"' { + // We encountered a character that needs to be encoded. Switch + // to complex version of the algorithm. + dst := []byte{'"'} + dst = decodeStringComplex(dst, string(pbs), uint(i)) + return append(dst, '"') + } + } + // The string has no need for encoding an therefore is directly + // appended to the byte slice. + result = append(result, pbs...) + return append(result, '"') +} + +func array2Json(src *bufio.Reader, dst io.Writer) { + dst.Write([]byte{'['}) + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeArray { + panic(fmt.Errorf("Major type is: %d in array2Json", major)) + } + len := 0 + unSpecifiedCount := false + if minor == additionalTypeInfiniteCount { + unSpecifiedCount = true + } else { + length := decodeIntAdditonalType(src, minor) + len = int(length) + } + for i := 0; unSpecifiedCount || i < len; i++ { + if unSpecifiedCount { + pb, e := src.Peek(1) + if e != nil { + panic(e) + } + if pb[0] == byte(majorTypeSimpleAndFloat|additionalTypeBreak) { + readByte(src) + break + } + } + cbor2JsonOneObject(src, dst) + if unSpecifiedCount { + pb, e := src.Peek(1) + if e != nil { + panic(e) + } + if pb[0] == byte(majorTypeSimpleAndFloat|additionalTypeBreak) { + readByte(src) + break + } + dst.Write([]byte{','}) + } else if i+1 < len { + dst.Write([]byte{','}) + } + } + dst.Write([]byte{']'}) +} + +func map2Json(src *bufio.Reader, dst io.Writer) { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeMap { + panic(fmt.Errorf("Major type is: %d in map2Json", major)) + } + len := 0 + unSpecifiedCount := false + if minor == additionalTypeInfiniteCount { + unSpecifiedCount = true + } else { + length := decodeIntAdditonalType(src, minor) + len = int(length) + } + dst.Write([]byte{'{'}) + for i := 0; unSpecifiedCount || i < len; i++ { + if unSpecifiedCount { + pb, e := src.Peek(1) + if e != nil { + panic(e) + } + if pb[0] == byte(majorTypeSimpleAndFloat|additionalTypeBreak) { + readByte(src) + break + } + } + cbor2JsonOneObject(src, dst) + if i%2 == 0 { + // Even position values are keys. + dst.Write([]byte{':'}) + } else { + if unSpecifiedCount { + pb, e := src.Peek(1) + if e != nil { + panic(e) + } + if pb[0] == byte(majorTypeSimpleAndFloat|additionalTypeBreak) { + readByte(src) + break + } + dst.Write([]byte{','}) + } else if i+1 < len { + dst.Write([]byte{','}) + } + } + } + dst.Write([]byte{'}'}) +} + +func decodeTagData(src *bufio.Reader) []byte { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeTags { + panic(fmt.Errorf("Major type is: %d in decodeTagData", major)) + } + switch minor { + case additionalTypeTimestamp: + return decodeTimeStamp(src) + + // Tag value is larger than 256 (so uint16). + case additionalTypeIntUint16: + val := decodeIntAdditonalType(src, minor) + + switch uint16(val) { + case additionalTypeEmbeddedJSON: + pb := readByte(src) + dataMajor := pb & maskOutAdditionalType + if dataMajor != majorTypeByteString { + panic(fmt.Errorf("Unsupported embedded Type: %d in decodeEmbeddedJSON", dataMajor)) + } + src.UnreadByte() + return decodeString(src, true) + + case additionalTypeTagNetworkAddr: + octets := decodeString(src, true) + ss := []byte{'"'} + switch len(octets) { + case 6: // MAC address. + ha := net.HardwareAddr(octets) + ss = append(append(ss, ha.String()...), '"') + case 4: // IPv4 address. + fallthrough + case 16: // IPv6 address. + ip := net.IP(octets) + ss = append(append(ss, ip.String()...), '"') + default: + panic(fmt.Errorf("Unexpected Network Address length: %d (expected 4,6,16)", len(octets))) + } + return ss + + case additionalTypeTagNetworkPrefix: + pb := readByte(src) + if pb != byte(majorTypeMap|0x1) { + panic(fmt.Errorf("IP Prefix is NOT of MAP of 1 elements as expected")) + } + octets := decodeString(src, true) + val := decodeInteger(src) + ip := net.IP(octets) + var mask net.IPMask + pfxLen := int(val) + if len(octets) == 4 { + mask = net.CIDRMask(pfxLen, 32) + } else { + mask = net.CIDRMask(pfxLen, 128) + } + ipPfx := net.IPNet{IP: ip, Mask: mask} + ss := []byte{'"'} + ss = append(append(ss, ipPfx.String()...), '"') + return ss + + case additionalTypeTagHexString: + octets := decodeString(src, true) + ss := []byte{'"'} + for _, v := range octets { + ss = append(ss, hexTable[v>>4], hexTable[v&0x0f]) + } + return append(ss, '"') + + default: + panic(fmt.Errorf("Unsupported Additional Tag Type: %d in decodeTagData", val)) + } + } + panic(fmt.Errorf("Unsupported Additional Type: %d in decodeTagData", minor)) +} + +func decodeTimeStamp(src *bufio.Reader) []byte { + pb := readByte(src) + src.UnreadByte() + tsMajor := pb & maskOutAdditionalType + if tsMajor == majorTypeUnsignedInt || tsMajor == majorTypeNegativeInt { + n := decodeInteger(src) + t := time.Unix(n, 0) + if decodeTimeZone != nil { + t = t.In(decodeTimeZone) + } else { + t = t.In(time.UTC) + } + tsb := []byte{} + tsb = append(tsb, '"') + tsb = t.AppendFormat(tsb, IntegerTimeFieldFormat) + tsb = append(tsb, '"') + return tsb + } else if tsMajor == majorTypeSimpleAndFloat { + n, _ := decodeFloat(src) + secs := int64(n) + n -= float64(secs) + n *= float64(1e9) + t := time.Unix(secs, int64(n)) + if decodeTimeZone != nil { + t = t.In(decodeTimeZone) + } else { + t = t.In(time.UTC) + } + tsb := []byte{} + tsb = append(tsb, '"') + tsb = t.AppendFormat(tsb, NanoTimeFieldFormat) + tsb = append(tsb, '"') + return tsb + } + panic(fmt.Errorf("TS format is neigther int nor float: %d", tsMajor)) +} + +func decodeSimpleFloat(src *bufio.Reader) []byte { + pb := readByte(src) + major := pb & maskOutAdditionalType + minor := pb & maskOutMajorType + if major != majorTypeSimpleAndFloat { + panic(fmt.Errorf("Major type is: %d in decodeSimpleFloat", major)) + } + switch minor { + case additionalTypeBoolTrue: + return []byte("true") + case additionalTypeBoolFalse: + return []byte("false") + case additionalTypeNull: + return []byte("null") + case additionalTypeFloat16: + fallthrough + case additionalTypeFloat32: + fallthrough + case additionalTypeFloat64: + src.UnreadByte() + v, bc := decodeFloat(src) + ba := []byte{} + switch { + case math.IsNaN(v): + return []byte("\"NaN\"") + case math.IsInf(v, 1): + return []byte("\"+Inf\"") + case math.IsInf(v, -1): + return []byte("\"-Inf\"") + } + if bc == isFloat32 { + ba = strconv.AppendFloat(ba, v, 'f', -1, 32) + } else if bc == isFloat64 { + ba = strconv.AppendFloat(ba, v, 'f', -1, 64) + } else { + panic(fmt.Errorf("Invalid Float precision from decodeFloat: %d", bc)) + } + return ba + default: + panic(fmt.Errorf("Invalid Additional Type: %d in decodeSimpleFloat", minor)) + } +} + +func cbor2JsonOneObject(src *bufio.Reader, dst io.Writer) { + pb, e := src.Peek(1) + if e != nil { + panic(e) + } + major := (pb[0] & maskOutAdditionalType) + + switch major { + case majorTypeUnsignedInt: + fallthrough + case majorTypeNegativeInt: + n := decodeInteger(src) + dst.Write([]byte(strconv.Itoa(int(n)))) + + case majorTypeByteString: + s := decodeString(src, false) + dst.Write(s) + + case majorTypeUtf8String: + s := decodeUTF8String(src) + dst.Write(s) + + case majorTypeArray: + array2Json(src, dst) + + case majorTypeMap: + map2Json(src, dst) + + case majorTypeTags: + s := decodeTagData(src) + dst.Write(s) + + case majorTypeSimpleAndFloat: + s := decodeSimpleFloat(src) + dst.Write(s) + } +} + +func moreBytesToRead(src *bufio.Reader) bool { + _, e := src.ReadByte() + if e == nil { + src.UnreadByte() + return true + } + return false +} + +// Cbor2JsonManyObjects decodes all the CBOR Objects read from src +// reader. It keeps on decoding until reader returns EOF (error when reading). +// Decoded string is written to the dst. At the end of every CBOR Object +// newline is written to the output stream. +// +// Returns error (if any) that was encountered during decode. +// The child functions will generate a panic when error is encountered and +// this function will recover non-runtime Errors and return the reason as error. +func Cbor2JsonManyObjects(src io.Reader, dst io.Writer) (err error) { + defer func() { + if r := recover(); r != nil { + if _, ok := r.(runtime.Error); ok { + panic(r) + } + err = r.(error) + } + }() + bufRdr := bufio.NewReader(src) + for moreBytesToRead(bufRdr) { + cbor2JsonOneObject(bufRdr, dst) + dst.Write([]byte("\n")) + } + return nil +} + +// Detect if the bytes to be printed is Binary or not. +func binaryFmt(p []byte) bool { + if len(p) > 0 && p[0] > 0x7F { + return true + } + return false +} + +func getReader(str string) *bufio.Reader { + return bufio.NewReader(strings.NewReader(str)) +} + +// DecodeIfBinaryToString converts a binary formatted log msg to a +// JSON formatted String Log message - suitable for printing to Console/Syslog. +func DecodeIfBinaryToString(in []byte) string { + if binaryFmt(in) { + var b bytes.Buffer + Cbor2JsonManyObjects(strings.NewReader(string(in)), &b) + return b.String() + } + return string(in) +} + +// DecodeObjectToStr checks if the input is a binary format, if so, +// it will decode a single Object and return the decoded string. +func DecodeObjectToStr(in []byte) string { + if binaryFmt(in) { + var b bytes.Buffer + cbor2JsonOneObject(getReader(string(in)), &b) + return b.String() + } + return string(in) +} + +// DecodeIfBinaryToBytes checks if the input is a binary format, if so, +// it will decode all Objects and return the decoded string as byte array. +func DecodeIfBinaryToBytes(in []byte) []byte { + if binaryFmt(in) { + var b bytes.Buffer + Cbor2JsonManyObjects(bytes.NewReader(in), &b) + return b.Bytes() + } + return in +} diff --git a/vendor/github.com/rs/zerolog/internal/cbor/string.go b/vendor/github.com/rs/zerolog/internal/cbor/string.go new file mode 100644 index 0000000..ff42afa --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/string.go @@ -0,0 +1,68 @@ +package cbor + +// AppendStrings encodes and adds an array of strings to the dst byte array. +func (e Encoder) AppendStrings(dst []byte, vals []string) []byte { + major := majorTypeArray + l := len(vals) + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendString(dst, v) + } + return dst +} + +// AppendString encodes and adds a string to the dst byte array. +func (Encoder) AppendString(dst []byte, s string) []byte { + major := majorTypeUtf8String + + l := len(s) + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, majorTypeUtf8String, uint64(l)) + } + return append(dst, s...) +} + +// AppendBytes encodes and adds an array of bytes to the dst byte array. +func (Encoder) AppendBytes(dst, s []byte) []byte { + major := majorTypeByteString + + l := len(s) + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + return append(dst, s...) +} + +// AppendEmbeddedJSON adds a tag and embeds input JSON as such. +func AppendEmbeddedJSON(dst, s []byte) []byte { + major := majorTypeTags + minor := additionalTypeEmbeddedJSON + + // Append the TAG to indicate this is Embedded JSON. + dst = append(dst, byte(major|additionalTypeIntUint16)) + dst = append(dst, byte(minor>>8)) + dst = append(dst, byte(minor&0xff)) + + // Append the JSON Object as Byte String. + major = majorTypeByteString + + l := len(s) + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + return append(dst, s...) +} diff --git a/vendor/github.com/rs/zerolog/internal/cbor/time.go b/vendor/github.com/rs/zerolog/internal/cbor/time.go new file mode 100644 index 0000000..12f6a1d --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/time.go @@ -0,0 +1,93 @@ +package cbor + +import ( + "time" +) + +func appendIntegerTimestamp(dst []byte, t time.Time) []byte { + major := majorTypeTags + minor := additionalTypeTimestamp + dst = append(dst, byte(major|minor)) + secs := t.Unix() + var val uint64 + if secs < 0 { + major = majorTypeNegativeInt + val = uint64(-secs - 1) + } else { + major = majorTypeUnsignedInt + val = uint64(secs) + } + dst = appendCborTypePrefix(dst, major, uint64(val)) + return dst +} + +func (e Encoder) appendFloatTimestamp(dst []byte, t time.Time) []byte { + major := majorTypeTags + minor := additionalTypeTimestamp + dst = append(dst, byte(major|minor)) + secs := t.Unix() + nanos := t.Nanosecond() + var val float64 + val = float64(secs)*1.0 + float64(nanos)*1E-9 + return e.AppendFloat64(dst, val) +} + +// AppendTime encodes and adds a timestamp to the dst byte array. +func (e Encoder) AppendTime(dst []byte, t time.Time, unused string) []byte { + utc := t.UTC() + if utc.Nanosecond() == 0 { + return appendIntegerTimestamp(dst, utc) + } + return e.appendFloatTimestamp(dst, utc) +} + +// AppendTimes encodes and adds an array of timestamps to the dst byte array. +func (e Encoder) AppendTimes(dst []byte, vals []time.Time, unused string) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + + for _, t := range vals { + dst = e.AppendTime(dst, t, unused) + } + return dst +} + +// AppendDuration encodes and adds a duration to the dst byte array. +// useInt field indicates whether to store the duration as seconds (integer) or +// as seconds+nanoseconds (float). +func (e Encoder) AppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte { + if useInt { + return e.AppendInt64(dst, int64(d/unit)) + } + return e.AppendFloat64(dst, float64(d)/float64(unit)) +} + +// AppendDurations encodes and adds an array of durations to the dst byte array. +// useInt field indicates whether to store the duration as seconds (integer) or +// as seconds+nanoseconds (float). +func (e Encoder) AppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, d := range vals { + dst = e.AppendDuration(dst, d, unit, useInt) + } + return dst +} diff --git a/vendor/github.com/rs/zerolog/internal/cbor/types.go b/vendor/github.com/rs/zerolog/internal/cbor/types.go new file mode 100644 index 0000000..3d76ea0 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/cbor/types.go @@ -0,0 +1,478 @@ +package cbor + +import ( + "encoding/json" + "fmt" + "math" + "net" +) + +// AppendNil inserts a 'Nil' object into the dst byte array. +func (Encoder) AppendNil(dst []byte) []byte { + return append(dst, byte(majorTypeSimpleAndFloat|additionalTypeNull)) +} + +// AppendBeginMarker inserts a map start into the dst byte array. +func (Encoder) AppendBeginMarker(dst []byte) []byte { + return append(dst, byte(majorTypeMap|additionalTypeInfiniteCount)) +} + +// AppendEndMarker inserts a map end into the dst byte array. +func (Encoder) AppendEndMarker(dst []byte) []byte { + return append(dst, byte(majorTypeSimpleAndFloat|additionalTypeBreak)) +} + +// AppendObjectData takes an object in form of a byte array and appends to dst. +func (Encoder) AppendObjectData(dst []byte, o []byte) []byte { + // BeginMarker is present in the dst, which + // should not be copied when appending to existing data. + return append(dst, o[1:]...) +} + +// AppendArrayStart adds markers to indicate the start of an array. +func (Encoder) AppendArrayStart(dst []byte) []byte { + return append(dst, byte(majorTypeArray|additionalTypeInfiniteCount)) +} + +// AppendArrayEnd adds markers to indicate the end of an array. +func (Encoder) AppendArrayEnd(dst []byte) []byte { + return append(dst, byte(majorTypeSimpleAndFloat|additionalTypeBreak)) +} + +// AppendArrayDelim adds markers to indicate end of a particular array element. +func (Encoder) AppendArrayDelim(dst []byte) []byte { + //No delimiters needed in cbor + return dst +} + +// AppendLineBreak is a noop that keep API compat with json encoder. +func (Encoder) AppendLineBreak(dst []byte) []byte { + // No line breaks needed in binary format. + return dst +} + +// AppendBool encodes and inserts a boolean value into the dst byte array. +func (Encoder) AppendBool(dst []byte, val bool) []byte { + b := additionalTypeBoolFalse + if val { + b = additionalTypeBoolTrue + } + return append(dst, byte(majorTypeSimpleAndFloat|b)) +} + +// AppendBools encodes and inserts an array of boolean values into the dst byte array. +func (e Encoder) AppendBools(dst []byte, vals []bool) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendBool(dst, v) + } + return dst +} + +// AppendInt encodes and inserts an integer value into the dst byte array. +func (Encoder) AppendInt(dst []byte, val int) []byte { + major := majorTypeUnsignedInt + contentVal := val + if val < 0 { + major = majorTypeNegativeInt + contentVal = -val - 1 + } + if contentVal <= additionalMax { + lb := byte(contentVal) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(contentVal)) + } + return dst +} + +// AppendInts encodes and inserts an array of integer values into the dst byte array. +func (e Encoder) AppendInts(dst []byte, vals []int) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendInt(dst, v) + } + return dst +} + +// AppendInt8 encodes and inserts an int8 value into the dst byte array. +func (e Encoder) AppendInt8(dst []byte, val int8) []byte { + return e.AppendInt(dst, int(val)) +} + +// AppendInts8 encodes and inserts an array of integer values into the dst byte array. +func (e Encoder) AppendInts8(dst []byte, vals []int8) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendInt(dst, int(v)) + } + return dst +} + +// AppendInt16 encodes and inserts a int16 value into the dst byte array. +func (e Encoder) AppendInt16(dst []byte, val int16) []byte { + return e.AppendInt(dst, int(val)) +} + +// AppendInts16 encodes and inserts an array of int16 values into the dst byte array. +func (e Encoder) AppendInts16(dst []byte, vals []int16) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendInt(dst, int(v)) + } + return dst +} + +// AppendInt32 encodes and inserts a int32 value into the dst byte array. +func (e Encoder) AppendInt32(dst []byte, val int32) []byte { + return e.AppendInt(dst, int(val)) +} + +// AppendInts32 encodes and inserts an array of int32 values into the dst byte array. +func (e Encoder) AppendInts32(dst []byte, vals []int32) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendInt(dst, int(v)) + } + return dst +} + +// AppendInt64 encodes and inserts a int64 value into the dst byte array. +func (Encoder) AppendInt64(dst []byte, val int64) []byte { + major := majorTypeUnsignedInt + contentVal := val + if val < 0 { + major = majorTypeNegativeInt + contentVal = -val - 1 + } + if contentVal <= additionalMax { + lb := byte(contentVal) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(contentVal)) + } + return dst +} + +// AppendInts64 encodes and inserts an array of int64 values into the dst byte array. +func (e Encoder) AppendInts64(dst []byte, vals []int64) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendInt64(dst, v) + } + return dst +} + +// AppendUint encodes and inserts an unsigned integer value into the dst byte array. +func (e Encoder) AppendUint(dst []byte, val uint) []byte { + return e.AppendInt64(dst, int64(val)) +} + +// AppendUints encodes and inserts an array of unsigned integer values into the dst byte array. +func (e Encoder) AppendUints(dst []byte, vals []uint) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendUint(dst, v) + } + return dst +} + +// AppendUint8 encodes and inserts a unsigned int8 value into the dst byte array. +func (e Encoder) AppendUint8(dst []byte, val uint8) []byte { + return e.AppendUint(dst, uint(val)) +} + +// AppendUints8 encodes and inserts an array of uint8 values into the dst byte array. +func (e Encoder) AppendUints8(dst []byte, vals []uint8) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendUint8(dst, v) + } + return dst +} + +// AppendUint16 encodes and inserts a uint16 value into the dst byte array. +func (e Encoder) AppendUint16(dst []byte, val uint16) []byte { + return e.AppendUint(dst, uint(val)) +} + +// AppendUints16 encodes and inserts an array of uint16 values into the dst byte array. +func (e Encoder) AppendUints16(dst []byte, vals []uint16) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendUint16(dst, v) + } + return dst +} + +// AppendUint32 encodes and inserts a uint32 value into the dst byte array. +func (e Encoder) AppendUint32(dst []byte, val uint32) []byte { + return e.AppendUint(dst, uint(val)) +} + +// AppendUints32 encodes and inserts an array of uint32 values into the dst byte array. +func (e Encoder) AppendUints32(dst []byte, vals []uint32) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendUint32(dst, v) + } + return dst +} + +// AppendUint64 encodes and inserts a uint64 value into the dst byte array. +func (Encoder) AppendUint64(dst []byte, val uint64) []byte { + major := majorTypeUnsignedInt + contentVal := val + if contentVal <= additionalMax { + lb := byte(contentVal) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(contentVal)) + } + return dst +} + +// AppendUints64 encodes and inserts an array of uint64 values into the dst byte array. +func (e Encoder) AppendUints64(dst []byte, vals []uint64) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendUint64(dst, v) + } + return dst +} + +// AppendFloat32 encodes and inserts a single precision float value into the dst byte array. +func (Encoder) AppendFloat32(dst []byte, val float32) []byte { + switch { + case math.IsNaN(float64(val)): + return append(dst, "\xfa\x7f\xc0\x00\x00"...) + case math.IsInf(float64(val), 1): + return append(dst, "\xfa\x7f\x80\x00\x00"...) + case math.IsInf(float64(val), -1): + return append(dst, "\xfa\xff\x80\x00\x00"...) + } + major := majorTypeSimpleAndFloat + subType := additionalTypeFloat32 + n := math.Float32bits(val) + var buf [4]byte + for i := uint(0); i < 4; i++ { + buf[i] = byte(n >> ((3 - i) * 8)) + } + return append(append(dst, byte(major|subType)), buf[0], buf[1], buf[2], buf[3]) +} + +// AppendFloats32 encodes and inserts an array of single precision float value into the dst byte array. +func (e Encoder) AppendFloats32(dst []byte, vals []float32) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendFloat32(dst, v) + } + return dst +} + +// AppendFloat64 encodes and inserts a double precision float value into the dst byte array. +func (Encoder) AppendFloat64(dst []byte, val float64) []byte { + switch { + case math.IsNaN(val): + return append(dst, "\xfb\x7f\xf8\x00\x00\x00\x00\x00\x00"...) + case math.IsInf(val, 1): + return append(dst, "\xfb\x7f\xf0\x00\x00\x00\x00\x00\x00"...) + case math.IsInf(val, -1): + return append(dst, "\xfb\xff\xf0\x00\x00\x00\x00\x00\x00"...) + } + major := majorTypeSimpleAndFloat + subType := additionalTypeFloat64 + n := math.Float64bits(val) + dst = append(dst, byte(major|subType)) + for i := uint(1); i <= 8; i++ { + b := byte(n >> ((8 - i) * 8)) + dst = append(dst, b) + } + return dst +} + +// AppendFloats64 encodes and inserts an array of double precision float values into the dst byte array. +func (e Encoder) AppendFloats64(dst []byte, vals []float64) []byte { + major := majorTypeArray + l := len(vals) + if l == 0 { + return e.AppendArrayEnd(e.AppendArrayStart(dst)) + } + if l <= additionalMax { + lb := byte(l) + dst = append(dst, byte(major|lb)) + } else { + dst = appendCborTypePrefix(dst, major, uint64(l)) + } + for _, v := range vals { + dst = e.AppendFloat64(dst, v) + } + return dst +} + +// AppendInterface takes an arbitrary object and converts it to JSON and embeds it dst. +func (e Encoder) AppendInterface(dst []byte, i interface{}) []byte { + marshaled, err := json.Marshal(i) + if err != nil { + return e.AppendString(dst, fmt.Sprintf("marshaling error: %v", err)) + } + return AppendEmbeddedJSON(dst, marshaled) +} + +// AppendIPAddr encodes and inserts an IP Address (IPv4 or IPv6). +func (e Encoder) AppendIPAddr(dst []byte, ip net.IP) []byte { + dst = append(dst, byte(majorTypeTags|additionalTypeIntUint16)) + dst = append(dst, byte(additionalTypeTagNetworkAddr>>8)) + dst = append(dst, byte(additionalTypeTagNetworkAddr&0xff)) + return e.AppendBytes(dst, ip) +} + +// AppendIPPrefix encodes and inserts an IP Address Prefix (Address + Mask Length). +func (e Encoder) AppendIPPrefix(dst []byte, pfx net.IPNet) []byte { + dst = append(dst, byte(majorTypeTags|additionalTypeIntUint16)) + dst = append(dst, byte(additionalTypeTagNetworkPrefix>>8)) + dst = append(dst, byte(additionalTypeTagNetworkPrefix&0xff)) + + // Prefix is a tuple (aka MAP of 1 pair of elements) - + // first element is prefix, second is mask length. + dst = append(dst, byte(majorTypeMap|0x1)) + dst = e.AppendBytes(dst, pfx.IP) + maskLen, _ := pfx.Mask.Size() + return e.AppendUint8(dst, uint8(maskLen)) +} + +// AppendMACAddr encodes and inserts an Hardware (MAC) address. +func (e Encoder) AppendMACAddr(dst []byte, ha net.HardwareAddr) []byte { + dst = append(dst, byte(majorTypeTags|additionalTypeIntUint16)) + dst = append(dst, byte(additionalTypeTagNetworkAddr>>8)) + dst = append(dst, byte(additionalTypeTagNetworkAddr&0xff)) + return e.AppendBytes(dst, ha) +} + +// AppendHex adds a TAG and inserts a hex bytes as a string. +func (e Encoder) AppendHex(dst []byte, val []byte) []byte { + dst = append(dst, byte(majorTypeTags|additionalTypeIntUint16)) + dst = append(dst, byte(additionalTypeTagHexString>>8)) + dst = append(dst, byte(additionalTypeTagHexString&0xff)) + return e.AppendBytes(dst, val) +} diff --git a/vendor/github.com/rs/zerolog/internal/json/base.go b/vendor/github.com/rs/zerolog/internal/json/base.go new file mode 100644 index 0000000..62248e7 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/json/base.go @@ -0,0 +1,11 @@ +package json + +type Encoder struct{} + +// AppendKey appends a new key to the output JSON. +func (e Encoder) AppendKey(dst []byte, key string) []byte { + if dst[len(dst)-1] != '{' { + dst = append(dst, ',') + } + return append(e.AppendString(dst, key), ':') +} diff --git a/vendor/github.com/rs/zerolog/internal/json/bytes.go b/vendor/github.com/rs/zerolog/internal/json/bytes.go new file mode 100644 index 0000000..de64120 --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/json/bytes.go @@ -0,0 +1,85 @@ +package json + +import "unicode/utf8" + +// AppendBytes is a mirror of appendString with []byte arg +func (Encoder) AppendBytes(dst, s []byte) []byte { + dst = append(dst, '"') + for i := 0; i < len(s); i++ { + if !noEscapeTable[s[i]] { + dst = appendBytesComplex(dst, s, i) + return append(dst, '"') + } + } + dst = append(dst, s...) + return append(dst, '"') +} + +// AppendHex encodes the input bytes to a hex string and appends +// the encoded string to the input byte slice. +// +// The operation loops though each byte and encodes it as hex using +// the hex lookup table. +func (Encoder) AppendHex(dst, s []byte) []byte { + dst = append(dst, '"') + for _, v := range s { + dst = append(dst, hex[v>>4], hex[v&0x0f]) + } + return append(dst, '"') +} + +// appendBytesComplex is a mirror of the appendStringComplex +// with []byte arg +func appendBytesComplex(dst, s []byte, i int) []byte { + start := 0 + for i < len(s) { + b := s[i] + if b >= utf8.RuneSelf { + r, size := utf8.DecodeRune(s[i:]) + if r == utf8.RuneError && size == 1 { + if start < i { + dst = append(dst, s[start:i]...) + } + dst = append(dst, `\ufffd`...) + i += size + start = i + continue + } + i += size + continue + } + if noEscapeTable[b] { + i++ + continue + } + // We encountered a character that needs to be encoded. + // Let's append the previous simple characters to the byte slice + // and switch our operation to read and encode the remainder + // characters byte-by-byte. + if start < i { + dst = append(dst, s[start:i]...) + } + switch b { + case '"', '\\': + dst = append(dst, '\\', b) + case '\b': + dst = append(dst, '\\', 'b') + case '\f': + dst = append(dst, '\\', 'f') + case '\n': + dst = append(dst, '\\', 'n') + case '\r': + dst = append(dst, '\\', 'r') + case '\t': + dst = append(dst, '\\', 't') + default: + dst = append(dst, '\\', 'u', '0', '0', hex[b>>4], hex[b&0xF]) + } + i++ + start = i + } + if start < len(s) { + dst = append(dst, s[start:]...) + } + return dst +} diff --git a/vendor/github.com/rs/zerolog/internal/json/string.go b/vendor/github.com/rs/zerolog/internal/json/string.go new file mode 100644 index 0000000..815906f --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/json/string.go @@ -0,0 +1,121 @@ +package json + +import "unicode/utf8" + +const hex = "0123456789abcdef" + +var noEscapeTable = [256]bool{} + +func init() { + for i := 0; i <= 0x7e; i++ { + noEscapeTable[i] = i >= 0x20 && i != '\\' && i != '"' + } +} + +// AppendStrings encodes the input strings to json and +// appends the encoded string list to the input byte slice. +func (e Encoder) AppendStrings(dst []byte, vals []string) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = e.AppendString(dst, vals[0]) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = e.AppendString(append(dst, ','), val) + } + } + dst = append(dst, ']') + return dst +} + +// AppendString encodes the input string to json and appends +// the encoded string to the input byte slice. +// +// The operation loops though each byte in the string looking +// for characters that need json or utf8 encoding. If the string +// does not need encoding, then the string is appended in it's +// entirety to the byte slice. +// If we encounter a byte that does need encoding, switch up +// the operation and perform a byte-by-byte read-encode-append. +func (Encoder) AppendString(dst []byte, s string) []byte { + // Start with a double quote. + dst = append(dst, '"') + // Loop through each character in the string. + for i := 0; i < len(s); i++ { + // Check if the character needs encoding. Control characters, slashes, + // and the double quote need json encoding. Bytes above the ascii + // boundary needs utf8 encoding. + if !noEscapeTable[s[i]] { + // We encountered a character that needs to be encoded. Switch + // to complex version of the algorithm. + dst = appendStringComplex(dst, s, i) + return append(dst, '"') + } + } + // The string has no need for encoding an therefore is directly + // appended to the byte slice. + dst = append(dst, s...) + // End with a double quote + return append(dst, '"') +} + +// appendStringComplex is used by appendString to take over an in +// progress JSON string encoding that encountered a character that needs +// to be encoded. +func appendStringComplex(dst []byte, s string, i int) []byte { + start := 0 + for i < len(s) { + b := s[i] + if b >= utf8.RuneSelf { + r, size := utf8.DecodeRuneInString(s[i:]) + if r == utf8.RuneError && size == 1 { + // In case of error, first append previous simple characters to + // the byte slice if any and append a remplacement character code + // in place of the invalid sequence. + if start < i { + dst = append(dst, s[start:i]...) + } + dst = append(dst, `\ufffd`...) + i += size + start = i + continue + } + i += size + continue + } + if noEscapeTable[b] { + i++ + continue + } + // We encountered a character that needs to be encoded. + // Let's append the previous simple characters to the byte slice + // and switch our operation to read and encode the remainder + // characters byte-by-byte. + if start < i { + dst = append(dst, s[start:i]...) + } + switch b { + case '"', '\\': + dst = append(dst, '\\', b) + case '\b': + dst = append(dst, '\\', 'b') + case '\f': + dst = append(dst, '\\', 'f') + case '\n': + dst = append(dst, '\\', 'n') + case '\r': + dst = append(dst, '\\', 'r') + case '\t': + dst = append(dst, '\\', 't') + default: + dst = append(dst, '\\', 'u', '0', '0', hex[b>>4], hex[b&0xF]) + } + i++ + start = i + } + if start < len(s) { + dst = append(dst, s[start:]...) + } + return dst +} diff --git a/vendor/github.com/rs/zerolog/internal/json/time.go b/vendor/github.com/rs/zerolog/internal/json/time.go new file mode 100644 index 0000000..5aff6be --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/json/time.go @@ -0,0 +1,106 @@ +package json + +import ( + "strconv" + "time" +) + +const ( + // Import from zerolog/global.go + timeFormatUnix = "" + timeFormatUnixMs = "UNIXMS" + timeFormatUnixMicro = "UNIXMICRO" +) + +// AppendTime formats the input time with the given format +// and appends the encoded string to the input byte slice. +func (e Encoder) AppendTime(dst []byte, t time.Time, format string) []byte { + switch format { + case timeFormatUnix: + return e.AppendInt64(dst, t.Unix()) + case timeFormatUnixMs: + return e.AppendInt64(dst, t.UnixNano()/1000000) + case timeFormatUnixMicro: + return e.AppendInt64(dst, t.UnixNano()/1000) + } + return append(t.AppendFormat(append(dst, '"'), format), '"') +} + +// AppendTimes converts the input times with the given format +// and appends the encoded string list to the input byte slice. +func (Encoder) AppendTimes(dst []byte, vals []time.Time, format string) []byte { + switch format { + case timeFormatUnix: + return appendUnixTimes(dst, vals) + case timeFormatUnixMs: + return appendUnixMsTimes(dst, vals) + } + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = append(vals[0].AppendFormat(append(dst, '"'), format), '"') + if len(vals) > 1 { + for _, t := range vals[1:] { + dst = append(t.AppendFormat(append(dst, ',', '"'), format), '"') + } + } + dst = append(dst, ']') + return dst +} + +func appendUnixTimes(dst []byte, vals []time.Time) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, vals[0].Unix(), 10) + if len(vals) > 1 { + for _, t := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), t.Unix(), 10) + } + } + dst = append(dst, ']') + return dst +} + +func appendUnixMsTimes(dst []byte, vals []time.Time) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, vals[0].UnixNano()/1000000, 10) + if len(vals) > 1 { + for _, t := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), t.UnixNano()/1000000, 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendDuration formats the input duration with the given unit & format +// and appends the encoded string to the input byte slice. +func (e Encoder) AppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte { + if useInt { + return strconv.AppendInt(dst, int64(d/unit), 10) + } + return e.AppendFloat64(dst, float64(d)/float64(unit)) +} + +// AppendDurations formats the input durations with the given unit & format +// and appends the encoded string list to the input byte slice. +func (e Encoder) AppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = e.AppendDuration(dst, vals[0], unit, useInt) + if len(vals) > 1 { + for _, d := range vals[1:] { + dst = e.AppendDuration(append(dst, ','), d, unit, useInt) + } + } + dst = append(dst, ']') + return dst +} diff --git a/vendor/github.com/rs/zerolog/internal/json/types.go b/vendor/github.com/rs/zerolog/internal/json/types.go new file mode 100644 index 0000000..924416c --- /dev/null +++ b/vendor/github.com/rs/zerolog/internal/json/types.go @@ -0,0 +1,406 @@ +package json + +import ( + "encoding/json" + "fmt" + "math" + "net" + "strconv" +) + +// AppendNil inserts a 'Nil' object into the dst byte array. +func (Encoder) AppendNil(dst []byte) []byte { + return append(dst, "null"...) +} + +// AppendBeginMarker inserts a map start into the dst byte array. +func (Encoder) AppendBeginMarker(dst []byte) []byte { + return append(dst, '{') +} + +// AppendEndMarker inserts a map end into the dst byte array. +func (Encoder) AppendEndMarker(dst []byte) []byte { + return append(dst, '}') +} + +// AppendLineBreak appends a line break. +func (Encoder) AppendLineBreak(dst []byte) []byte { + return append(dst, '\n') +} + +// AppendArrayStart adds markers to indicate the start of an array. +func (Encoder) AppendArrayStart(dst []byte) []byte { + return append(dst, '[') +} + +// AppendArrayEnd adds markers to indicate the end of an array. +func (Encoder) AppendArrayEnd(dst []byte) []byte { + return append(dst, ']') +} + +// AppendArrayDelim adds markers to indicate end of a particular array element. +func (Encoder) AppendArrayDelim(dst []byte) []byte { + if len(dst) > 0 { + return append(dst, ',') + } + return dst +} + +// AppendBool converts the input bool to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendBool(dst []byte, val bool) []byte { + return strconv.AppendBool(dst, val) +} + +// AppendBools encodes the input bools to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendBools(dst []byte, vals []bool) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendBool(dst, vals[0]) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendBool(append(dst, ','), val) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInt converts the input int to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendInt(dst []byte, val int) []byte { + return strconv.AppendInt(dst, int64(val), 10) +} + +// AppendInts encodes the input ints to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendInts(dst []byte, vals []int) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, int64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), int64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInt8 converts the input []int8 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendInt8(dst []byte, val int8) []byte { + return strconv.AppendInt(dst, int64(val), 10) +} + +// AppendInts8 encodes the input int8s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendInts8(dst []byte, vals []int8) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, int64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), int64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInt16 converts the input int16 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendInt16(dst []byte, val int16) []byte { + return strconv.AppendInt(dst, int64(val), 10) +} + +// AppendInts16 encodes the input int16s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendInts16(dst []byte, vals []int16) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, int64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), int64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInt32 converts the input int32 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendInt32(dst []byte, val int32) []byte { + return strconv.AppendInt(dst, int64(val), 10) +} + +// AppendInts32 encodes the input int32s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendInts32(dst []byte, vals []int32) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, int64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), int64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInt64 converts the input int64 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendInt64(dst []byte, val int64) []byte { + return strconv.AppendInt(dst, val, 10) +} + +// AppendInts64 encodes the input int64s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendInts64(dst []byte, vals []int64) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendInt(dst, vals[0], 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendInt(append(dst, ','), val, 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendUint converts the input uint to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendUint(dst []byte, val uint) []byte { + return strconv.AppendUint(dst, uint64(val), 10) +} + +// AppendUints encodes the input uints to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendUints(dst []byte, vals []uint) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendUint(dst, uint64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendUint(append(dst, ','), uint64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendUint8 converts the input uint8 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendUint8(dst []byte, val uint8) []byte { + return strconv.AppendUint(dst, uint64(val), 10) +} + +// AppendUints8 encodes the input uint8s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendUints8(dst []byte, vals []uint8) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendUint(dst, uint64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendUint(append(dst, ','), uint64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendUint16 converts the input uint16 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendUint16(dst []byte, val uint16) []byte { + return strconv.AppendUint(dst, uint64(val), 10) +} + +// AppendUints16 encodes the input uint16s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendUints16(dst []byte, vals []uint16) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendUint(dst, uint64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendUint(append(dst, ','), uint64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendUint32 converts the input uint32 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendUint32(dst []byte, val uint32) []byte { + return strconv.AppendUint(dst, uint64(val), 10) +} + +// AppendUints32 encodes the input uint32s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendUints32(dst []byte, vals []uint32) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendUint(dst, uint64(vals[0]), 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendUint(append(dst, ','), uint64(val), 10) + } + } + dst = append(dst, ']') + return dst +} + +// AppendUint64 converts the input uint64 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendUint64(dst []byte, val uint64) []byte { + return strconv.AppendUint(dst, uint64(val), 10) +} + +// AppendUints64 encodes the input uint64s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendUints64(dst []byte, vals []uint64) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = strconv.AppendUint(dst, vals[0], 10) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = strconv.AppendUint(append(dst, ','), val, 10) + } + } + dst = append(dst, ']') + return dst +} + +func appendFloat(dst []byte, val float64, bitSize int) []byte { + // JSON does not permit NaN or Infinity. A typical JSON encoder would fail + // with an error, but a logging library wants the data to get thru so we + // make a tradeoff and store those types as string. + switch { + case math.IsNaN(val): + return append(dst, `"NaN"`...) + case math.IsInf(val, 1): + return append(dst, `"+Inf"`...) + case math.IsInf(val, -1): + return append(dst, `"-Inf"`...) + } + return strconv.AppendFloat(dst, val, 'f', -1, bitSize) +} + +// AppendFloat32 converts the input float32 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendFloat32(dst []byte, val float32) []byte { + return appendFloat(dst, float64(val), 32) +} + +// AppendFloats32 encodes the input float32s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendFloats32(dst []byte, vals []float32) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = appendFloat(dst, float64(vals[0]), 32) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = appendFloat(append(dst, ','), float64(val), 32) + } + } + dst = append(dst, ']') + return dst +} + +// AppendFloat64 converts the input float64 to a string and +// appends the encoded string to the input byte slice. +func (Encoder) AppendFloat64(dst []byte, val float64) []byte { + return appendFloat(dst, val, 64) +} + +// AppendFloats64 encodes the input float64s to json and +// appends the encoded string list to the input byte slice. +func (Encoder) AppendFloats64(dst []byte, vals []float64) []byte { + if len(vals) == 0 { + return append(dst, '[', ']') + } + dst = append(dst, '[') + dst = appendFloat(dst, vals[0], 64) + if len(vals) > 1 { + for _, val := range vals[1:] { + dst = appendFloat(append(dst, ','), val, 64) + } + } + dst = append(dst, ']') + return dst +} + +// AppendInterface marshals the input interface to a string and +// appends the encoded string to the input byte slice. +func (e Encoder) AppendInterface(dst []byte, i interface{}) []byte { + marshaled, err := json.Marshal(i) + if err != nil { + return e.AppendString(dst, fmt.Sprintf("marshaling error: %v", err)) + } + return append(dst, marshaled...) +} + +// AppendObjectData takes in an object that is already in a byte array +// and adds it to the dst. +func (Encoder) AppendObjectData(dst []byte, o []byte) []byte { + // Three conditions apply here: + // 1. new content starts with '{' - which should be dropped OR + // 2. new content starts with '{' - which should be replaced with ',' + // to separate with existing content OR + // 3. existing content has already other fields + if o[0] == '{' { + if len(dst) > 1 { + dst = append(dst, ',') + } + o = o[1:] + } else if len(dst) > 1 { + dst = append(dst, ',') + } + return append(dst, o...) +} + +// AppendIPAddr adds IPv4 or IPv6 address to dst. +func (e Encoder) AppendIPAddr(dst []byte, ip net.IP) []byte { + return e.AppendString(dst, ip.String()) +} + +// AppendIPPrefix adds IPv4 or IPv6 Prefix (address & mask) to dst. +func (e Encoder) AppendIPPrefix(dst []byte, pfx net.IPNet) []byte { + return e.AppendString(dst, pfx.String()) + +} + +// AppendMACAddr adds MAC address to dst. +func (e Encoder) AppendMACAddr(dst []byte, ha net.HardwareAddr) []byte { + return e.AppendString(dst, ha.String()) +} diff --git a/vendor/github.com/rs/zerolog/log.go b/vendor/github.com/rs/zerolog/log.go new file mode 100644 index 0000000..6bc6a80 --- /dev/null +++ b/vendor/github.com/rs/zerolog/log.go @@ -0,0 +1,448 @@ +// Package zerolog provides a lightweight logging library dedicated to JSON logging. +// +// A global Logger can be use for simple logging: +// +// import "github.com/rs/zerolog/log" +// +// log.Info().Msg("hello world") +// // Output: {"time":1494567715,"level":"info","message":"hello world"} +// +// NOTE: To import the global logger, import the "log" subpackage "github.com/rs/zerolog/log". +// +// Fields can be added to log messages: +// +// log.Info().Str("foo", "bar").Msg("hello world") +// // Output: {"time":1494567715,"level":"info","message":"hello world","foo":"bar"} +// +// Create logger instance to manage different outputs: +// +// logger := zerolog.New(os.Stderr).With().Timestamp().Logger() +// logger.Info(). +// Str("foo", "bar"). +// Msg("hello world") +// // Output: {"time":1494567715,"level":"info","message":"hello world","foo":"bar"} +// +// Sub-loggers let you chain loggers with additional context: +// +// sublogger := log.With().Str("component": "foo").Logger() +// sublogger.Info().Msg("hello world") +// // Output: {"time":1494567715,"level":"info","message":"hello world","component":"foo"} +// +// Level logging +// +// zerolog.SetGlobalLevel(zerolog.InfoLevel) +// +// log.Debug().Msg("filtered out message") +// log.Info().Msg("routed message") +// +// if e := log.Debug(); e.Enabled() { +// // Compute log output only if enabled. +// value := compute() +// e.Str("foo": value).Msg("some debug message") +// } +// // Output: {"level":"info","time":1494567715,"routed message"} +// +// Customize automatic field names: +// +// log.TimestampFieldName = "t" +// log.LevelFieldName = "p" +// log.MessageFieldName = "m" +// +// log.Info().Msg("hello world") +// // Output: {"t":1494567715,"p":"info","m":"hello world"} +// +// Log with no level and message: +// +// log.Log().Str("foo","bar").Msg("") +// // Output: {"time":1494567715,"foo":"bar"} +// +// Add contextual fields to global Logger: +// +// log.Logger = log.With().Str("foo", "bar").Logger() +// +// Sample logs: +// +// sampled := log.Sample(&zerolog.BasicSampler{N: 10}) +// sampled.Info().Msg("will be logged every 10 messages") +// +// Log with contextual hooks: +// +// // Create the hook: +// type SeverityHook struct{} +// +// func (h SeverityHook) Run(e *zerolog.Event, level zerolog.Level, msg string) { +// if level != zerolog.NoLevel { +// e.Str("severity", level.String()) +// } +// } +// +// // And use it: +// var h SeverityHook +// log := zerolog.New(os.Stdout).Hook(h) +// log.Warn().Msg("") +// // Output: {"level":"warn","severity":"warn"} +// +// +// Caveats +// +// There is no fields deduplication out-of-the-box. +// Using the same key multiple times creates new key in final JSON each time. +// +// logger := zerolog.New(os.Stderr).With().Timestamp().Logger() +// logger.Info(). +// Timestamp(). +// Msg("dup") +// // Output: {"level":"info","time":1494567715,"time":1494567715,"message":"dup"} +// +// In this case, many consumers will take the last value, +// but this is not guaranteed; check yours if in doubt. +package zerolog + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "strconv" +) + +// Level defines log levels. +type Level int8 + +const ( + // DebugLevel defines debug log level. + DebugLevel Level = iota + // InfoLevel defines info log level. + InfoLevel + // WarnLevel defines warn log level. + WarnLevel + // ErrorLevel defines error log level. + ErrorLevel + // FatalLevel defines fatal log level. + FatalLevel + // PanicLevel defines panic log level. + PanicLevel + // NoLevel defines an absent log level. + NoLevel + // Disabled disables the logger. + Disabled + + // TraceLevel defines trace log level. + TraceLevel Level = -1 +) + +func (l Level) String() string { + switch l { + case TraceLevel: + return LevelTraceValue + case DebugLevel: + return LevelDebugValue + case InfoLevel: + return LevelInfoValue + case WarnLevel: + return LevelWarnValue + case ErrorLevel: + return LevelErrorValue + case FatalLevel: + return LevelFatalValue + case PanicLevel: + return LevelPanicValue + case Disabled: + return "disabled" + case NoLevel: + return "" + } + return "" +} + +// ParseLevel converts a level string into a zerolog Level value. +// returns an error if the input string does not match known values. +func ParseLevel(levelStr string) (Level, error) { + switch levelStr { + case LevelFieldMarshalFunc(TraceLevel): + return TraceLevel, nil + case LevelFieldMarshalFunc(DebugLevel): + return DebugLevel, nil + case LevelFieldMarshalFunc(InfoLevel): + return InfoLevel, nil + case LevelFieldMarshalFunc(WarnLevel): + return WarnLevel, nil + case LevelFieldMarshalFunc(ErrorLevel): + return ErrorLevel, nil + case LevelFieldMarshalFunc(FatalLevel): + return FatalLevel, nil + case LevelFieldMarshalFunc(PanicLevel): + return PanicLevel, nil + case LevelFieldMarshalFunc(Disabled): + return Disabled, nil + case LevelFieldMarshalFunc(NoLevel): + return NoLevel, nil + } + return NoLevel, fmt.Errorf("Unknown Level String: '%s', defaulting to NoLevel", levelStr) +} + +// A Logger represents an active logging object that generates lines +// of JSON output to an io.Writer. Each logging operation makes a single +// call to the Writer's Write method. There is no guarantee on access +// serialization to the Writer. If your Writer is not thread safe, +// you may consider a sync wrapper. +type Logger struct { + w LevelWriter + level Level + sampler Sampler + context []byte + hooks []Hook + stack bool +} + +// New creates a root logger with given output writer. If the output writer implements +// the LevelWriter interface, the WriteLevel method will be called instead of the Write +// one. +// +// Each logging operation makes a single call to the Writer's Write method. There is no +// guarantee on access serialization to the Writer. If your Writer is not thread safe, +// you may consider using sync wrapper. +func New(w io.Writer) Logger { + if w == nil { + w = ioutil.Discard + } + lw, ok := w.(LevelWriter) + if !ok { + lw = levelWriterAdapter{w} + } + return Logger{w: lw, level: TraceLevel} +} + +// Nop returns a disabled logger for which all operation are no-op. +func Nop() Logger { + return New(nil).Level(Disabled) +} + +// Output duplicates the current logger and sets w as its output. +func (l Logger) Output(w io.Writer) Logger { + l2 := New(w) + l2.level = l.level + l2.sampler = l.sampler + if len(l.hooks) > 0 { + l2.hooks = append(l2.hooks, l.hooks...) + } + if l.context != nil { + l2.context = make([]byte, len(l.context), cap(l.context)) + copy(l2.context, l.context) + } + return l2 +} + +// With creates a child logger with the field added to its context. +func (l Logger) With() Context { + context := l.context + l.context = make([]byte, 0, 500) + if context != nil { + l.context = append(l.context, context...) + } else { + // This is needed for AppendKey to not check len of input + // thus making it inlinable + l.context = enc.AppendBeginMarker(l.context) + } + return Context{l} +} + +// UpdateContext updates the internal logger's context. +// +// Use this method with caution. If unsure, prefer the With method. +func (l *Logger) UpdateContext(update func(c Context) Context) { + if l == disabledLogger { + return + } + if cap(l.context) == 0 { + l.context = make([]byte, 0, 500) + } + if len(l.context) == 0 { + l.context = enc.AppendBeginMarker(l.context) + } + c := update(Context{*l}) + l.context = c.l.context +} + +// Level creates a child logger with the minimum accepted level set to level. +func (l Logger) Level(lvl Level) Logger { + l.level = lvl + return l +} + +// GetLevel returns the current Level of l. +func (l Logger) GetLevel() Level { + return l.level +} + +// Sample returns a logger with the s sampler. +func (l Logger) Sample(s Sampler) Logger { + l.sampler = s + return l +} + +// Hook returns a logger with the h Hook. +func (l Logger) Hook(h Hook) Logger { + l.hooks = append(l.hooks, h) + return l +} + +// Trace starts a new message with trace level. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Trace() *Event { + return l.newEvent(TraceLevel, nil) +} + +// Debug starts a new message with debug level. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Debug() *Event { + return l.newEvent(DebugLevel, nil) +} + +// Info starts a new message with info level. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Info() *Event { + return l.newEvent(InfoLevel, nil) +} + +// Warn starts a new message with warn level. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Warn() *Event { + return l.newEvent(WarnLevel, nil) +} + +// Error starts a new message with error level. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Error() *Event { + return l.newEvent(ErrorLevel, nil) +} + +// Err starts a new message with error level with err as a field if not nil or +// with info level if err is nil. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Err(err error) *Event { + if err != nil { + return l.Error().Err(err) + } + + return l.Info() +} + +// Fatal starts a new message with fatal level. The os.Exit(1) function +// is called by the Msg method, which terminates the program immediately. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Fatal() *Event { + return l.newEvent(FatalLevel, func(msg string) { os.Exit(1) }) +} + +// Panic starts a new message with panic level. The panic() function +// is called by the Msg method, which stops the ordinary flow of a goroutine. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Panic() *Event { + return l.newEvent(PanicLevel, func(msg string) { panic(msg) }) +} + +// WithLevel starts a new message with level. Unlike Fatal and Panic +// methods, WithLevel does not terminate the program or stop the ordinary +// flow of a gourotine when used with their respective levels. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) WithLevel(level Level) *Event { + switch level { + case TraceLevel: + return l.Trace() + case DebugLevel: + return l.Debug() + case InfoLevel: + return l.Info() + case WarnLevel: + return l.Warn() + case ErrorLevel: + return l.Error() + case FatalLevel: + return l.newEvent(FatalLevel, nil) + case PanicLevel: + return l.newEvent(PanicLevel, nil) + case NoLevel: + return l.Log() + case Disabled: + return nil + default: + panic("zerolog: WithLevel(): invalid level: " + strconv.Itoa(int(level))) + } +} + +// Log starts a new message with no level. Setting GlobalLevel to Disabled +// will still disable events produced by this method. +// +// You must call Msg on the returned event in order to send the event. +func (l *Logger) Log() *Event { + return l.newEvent(NoLevel, nil) +} + +// Print sends a log event using debug level and no extra field. +// Arguments are handled in the manner of fmt.Print. +func (l *Logger) Print(v ...interface{}) { + if e := l.Debug(); e.Enabled() { + e.CallerSkipFrame(1).Msg(fmt.Sprint(v...)) + } +} + +// Printf sends a log event using debug level and no extra field. +// Arguments are handled in the manner of fmt.Printf. +func (l *Logger) Printf(format string, v ...interface{}) { + if e := l.Debug(); e.Enabled() { + e.CallerSkipFrame(1).Msg(fmt.Sprintf(format, v...)) + } +} + +// Write implements the io.Writer interface. This is useful to set as a writer +// for the standard library log. +func (l Logger) Write(p []byte) (n int, err error) { + n = len(p) + if n > 0 && p[n-1] == '\n' { + // Trim CR added by stdlog. + p = p[0 : n-1] + } + l.Log().CallerSkipFrame(1).Msg(string(p)) + return +} + +func (l *Logger) newEvent(level Level, done func(string)) *Event { + enabled := l.should(level) + if !enabled { + return nil + } + e := newEvent(l.w, level) + e.done = done + e.ch = l.hooks + if level != NoLevel && LevelFieldName != "" { + e.Str(LevelFieldName, LevelFieldMarshalFunc(level)) + } + if l.context != nil && len(l.context) > 1 { + e.buf = enc.AppendObjectData(e.buf, l.context) + } + if l.stack { + e.Stack() + } + return e +} + +// should returns true if the log event should be logged. +func (l *Logger) should(lvl Level) bool { + if lvl < l.level || lvl < GlobalLevel() { + return false + } + if l.sampler != nil && !samplingDisabled() { + return l.sampler.Sample(lvl) + } + return true +} diff --git a/vendor/github.com/rs/zerolog/not_go112.go b/vendor/github.com/rs/zerolog/not_go112.go new file mode 100644 index 0000000..4c43c9e --- /dev/null +++ b/vendor/github.com/rs/zerolog/not_go112.go @@ -0,0 +1,5 @@ +// +build !go1.12 + +package zerolog + +const contextCallerSkipFrameCount = 3 diff --git a/vendor/github.com/rs/zerolog/pretty.png b/vendor/github.com/rs/zerolog/pretty.png new file mode 100644 index 0000000000000000000000000000000000000000..242033686debf04c5b1756c166d05d09767594e3 GIT binary patch literal 84064 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

8fq~0=I!v4AnE;d}cbadUlY^=u7 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/rs/zerolog/sampler.go b/vendor/github.com/rs/zerolog/sampler.go new file mode 100644 index 0000000..a99629e --- /dev/null +++ b/vendor/github.com/rs/zerolog/sampler.go @@ -0,0 +1,134 @@ +package zerolog + +import ( + "math/rand" + "sync/atomic" + "time" +) + +var ( + // Often samples log every ~ 10 events. + Often = RandomSampler(10) + // Sometimes samples log every ~ 100 events. + Sometimes = RandomSampler(100) + // Rarely samples log every ~ 1000 events. + Rarely = RandomSampler(1000) +) + +// Sampler defines an interface to a log sampler. +type Sampler interface { + // Sample returns true if the event should be part of the sample, false if + // the event should be dropped. + Sample(lvl Level) bool +} + +// RandomSampler use a PRNG to randomly sample an event out of N events, +// regardless of their level. +type RandomSampler uint32 + +// Sample implements the Sampler interface. +func (s RandomSampler) Sample(lvl Level) bool { + if s <= 0 { + return false + } + if rand.Intn(int(s)) != 0 { + return false + } + return true +} + +// BasicSampler is a sampler that will send every Nth events, regardless of +// there level. +type BasicSampler struct { + N uint32 + counter uint32 +} + +// Sample implements the Sampler interface. +func (s *BasicSampler) Sample(lvl Level) bool { + n := s.N + if n == 1 { + return true + } + c := atomic.AddUint32(&s.counter, 1) + return c%n == 1 +} + +// BurstSampler lets Burst events pass per Period then pass the decision to +// NextSampler. If Sampler is not set, all subsequent events are rejected. +type BurstSampler struct { + // Burst is the maximum number of event per period allowed before calling + // NextSampler. + Burst uint32 + // Period defines the burst period. If 0, NextSampler is always called. + Period time.Duration + // NextSampler is the sampler used after the burst is reached. If nil, + // events are always rejected after the burst. + NextSampler Sampler + + counter uint32 + resetAt int64 +} + +// Sample implements the Sampler interface. +func (s *BurstSampler) Sample(lvl Level) bool { + if s.Burst > 0 && s.Period > 0 { + if s.inc() <= s.Burst { + return true + } + } + if s.NextSampler == nil { + return false + } + return s.NextSampler.Sample(lvl) +} + +func (s *BurstSampler) inc() uint32 { + now := time.Now().UnixNano() + resetAt := atomic.LoadInt64(&s.resetAt) + var c uint32 + if now > resetAt { + c = 1 + atomic.StoreUint32(&s.counter, c) + newResetAt := now + s.Period.Nanoseconds() + reset := atomic.CompareAndSwapInt64(&s.resetAt, resetAt, newResetAt) + if !reset { + // Lost the race with another goroutine trying to reset. + c = atomic.AddUint32(&s.counter, 1) + } + } else { + c = atomic.AddUint32(&s.counter, 1) + } + return c +} + +// LevelSampler applies a different sampler for each level. +type LevelSampler struct { + TraceSampler, DebugSampler, InfoSampler, WarnSampler, ErrorSampler Sampler +} + +func (s LevelSampler) Sample(lvl Level) bool { + switch lvl { + case TraceLevel: + if s.TraceSampler != nil { + return s.TraceSampler.Sample(lvl) + } + case DebugLevel: + if s.DebugSampler != nil { + return s.DebugSampler.Sample(lvl) + } + case InfoLevel: + if s.InfoSampler != nil { + return s.InfoSampler.Sample(lvl) + } + case WarnLevel: + if s.WarnSampler != nil { + return s.WarnSampler.Sample(lvl) + } + case ErrorLevel: + if s.ErrorSampler != nil { + return s.ErrorSampler.Sample(lvl) + } + } + return true +} diff --git a/vendor/github.com/rs/zerolog/syslog.go b/vendor/github.com/rs/zerolog/syslog.go new file mode 100644 index 0000000..c408283 --- /dev/null +++ b/vendor/github.com/rs/zerolog/syslog.go @@ -0,0 +1,80 @@ +// +build !windows +// +build !binary_log + +package zerolog + +import ( + "io" +) + +// See http://cee.mitre.org/language/1.0-beta1/clt.html#syslog +// or https://www.rsyslog.com/json-elasticsearch/ +const ceePrefix = "@cee:" + +// SyslogWriter is an interface matching a syslog.Writer struct. +type SyslogWriter interface { + io.Writer + Debug(m string) error + Info(m string) error + Warning(m string) error + Err(m string) error + Emerg(m string) error + Crit(m string) error +} + +type syslogWriter struct { + w SyslogWriter + prefix string +} + +// SyslogLevelWriter wraps a SyslogWriter and call the right syslog level +// method matching the zerolog level. +func SyslogLevelWriter(w SyslogWriter) LevelWriter { + return syslogWriter{w, ""} +} + +// SyslogCEEWriter wraps a SyslogWriter with a SyslogLevelWriter that adds a +// MITRE CEE prefix for JSON syslog entries, compatible with rsyslog +// and syslog-ng JSON logging support. +// See https://www.rsyslog.com/json-elasticsearch/ +func SyslogCEEWriter(w SyslogWriter) LevelWriter { + return syslogWriter{w, ceePrefix} +} + +func (sw syslogWriter) Write(p []byte) (n int, err error) { + var pn int + if sw.prefix != "" { + pn, err = sw.w.Write([]byte(sw.prefix)) + if err != nil { + return pn, err + } + } + n, err = sw.w.Write(p) + return pn + n, err +} + +// WriteLevel implements LevelWriter interface. +func (sw syslogWriter) WriteLevel(level Level, p []byte) (n int, err error) { + switch level { + case TraceLevel: + case DebugLevel: + err = sw.w.Debug(sw.prefix + string(p)) + case InfoLevel: + err = sw.w.Info(sw.prefix + string(p)) + case WarnLevel: + err = sw.w.Warning(sw.prefix + string(p)) + case ErrorLevel: + err = sw.w.Err(sw.prefix + string(p)) + case FatalLevel: + err = sw.w.Emerg(sw.prefix + string(p)) + case PanicLevel: + err = sw.w.Crit(sw.prefix + string(p)) + case NoLevel: + err = sw.w.Info(sw.prefix + string(p)) + default: + panic("invalid level") + } + // Any CEE prefix is not part of the message, so we don't include its length + n = len(p) + return +} diff --git a/vendor/github.com/rs/zerolog/writer.go b/vendor/github.com/rs/zerolog/writer.go new file mode 100644 index 0000000..98c932e --- /dev/null +++ b/vendor/github.com/rs/zerolog/writer.go @@ -0,0 +1,98 @@ +package zerolog + +import ( + "io" + "sync" +) + +// LevelWriter defines as interface a writer may implement in order +// to receive level information with payload. +type LevelWriter interface { + io.Writer + WriteLevel(level Level, p []byte) (n int, err error) +} + +type levelWriterAdapter struct { + io.Writer +} + +func (lw levelWriterAdapter) WriteLevel(l Level, p []byte) (n int, err error) { + return lw.Write(p) +} + +type syncWriter struct { + mu sync.Mutex + lw LevelWriter +} + +// SyncWriter wraps w so that each call to Write is synchronized with a mutex. +// This syncer can be used to wrap the call to writer's Write method if it is +// not thread safe. Note that you do not need this wrapper for os.File Write +// operations on POSIX and Windows systems as they are already thread-safe. +func SyncWriter(w io.Writer) io.Writer { + if lw, ok := w.(LevelWriter); ok { + return &syncWriter{lw: lw} + } + return &syncWriter{lw: levelWriterAdapter{w}} +} + +// Write implements the io.Writer interface. +func (s *syncWriter) Write(p []byte) (n int, err error) { + s.mu.Lock() + defer s.mu.Unlock() + return s.lw.Write(p) +} + +// WriteLevel implements the LevelWriter interface. +func (s *syncWriter) WriteLevel(l Level, p []byte) (n int, err error) { + s.mu.Lock() + defer s.mu.Unlock() + return s.lw.WriteLevel(l, p) +} + +type multiLevelWriter struct { + writers []LevelWriter +} + +func (t multiLevelWriter) Write(p []byte) (n int, err error) { + for _, w := range t.writers { + if _n, _err := w.Write(p); err == nil { + n = _n + if _err != nil { + err = _err + } else if _n != len(p) { + err = io.ErrShortWrite + } + } + } + return n, err +} + +func (t multiLevelWriter) WriteLevel(l Level, p []byte) (n int, err error) { + for _, w := range t.writers { + if _n, _err := w.WriteLevel(l, p); err == nil { + n = _n + if _err != nil { + err = _err + } else if _n != len(p) { + err = io.ErrShortWrite + } + } + } + return n, err +} + +// MultiLevelWriter creates a writer that duplicates its writes to all the +// provided writers, similar to the Unix tee(1) command. If some writers +// implement LevelWriter, their WriteLevel method will be used instead of Write. +func MultiLevelWriter(writers ...io.Writer) LevelWriter { + lwriters := make([]LevelWriter, 0, len(writers)) + for _, w := range writers { + if lw, ok := w.(LevelWriter); ok { + lwriters = append(lwriters, lw) + } else { + lwriters = append(lwriters, levelWriterAdapter{w}) + } + } + return multiLevelWriter{lwriters} +} diff --git a/vendor/github.com/spf13/afero/.travis.yml b/vendor/github.com/spf13/afero/.travis.yml new file mode 100644 index 0000000..0637db7 --- /dev/null +++ b/vendor/github.com/spf13/afero/.travis.yml @@ -0,0 +1,21 @@ +sudo: false +language: go + +go: + - 1.9 + - "1.10" + - tip + +os: + - linux + - osx + +matrix: + allow_failures: + - go: tip + fast_finish: true + +script: + - go build + - go test -race -v ./... + diff --git a/vendor/github.com/spf13/afero/LICENSE.txt b/vendor/github.com/spf13/afero/LICENSE.txt new file mode 100644 index 0000000..298f0e2 --- /dev/null +++ b/vendor/github.com/spf13/afero/LICENSE.txt @@ -0,0 +1,174 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/vendor/github.com/spf13/afero/README.md b/vendor/github.com/spf13/afero/README.md new file mode 100644 index 0000000..0c9b04b --- /dev/null +++ b/vendor/github.com/spf13/afero/README.md @@ -0,0 +1,452 @@ +![afero logo-sm](https://cloud.githubusercontent.com/assets/173412/11490338/d50e16dc-97a5-11e5-8b12-019a300d0fcb.png) + +A FileSystem Abstraction System for Go + +[![Build Status](https://travis-ci.org/spf13/afero.svg)](https://travis-ci.org/spf13/afero) [![Build status](https://ci.appveyor.com/api/projects/status/github/spf13/afero?branch=master&svg=true)](https://ci.appveyor.com/project/spf13/afero) [![GoDoc](https://godoc.org/github.com/spf13/afero?status.svg)](https://godoc.org/github.com/spf13/afero) [![Join the chat at https://gitter.im/spf13/afero](https://badges.gitter.im/Dev%20Chat.svg)](https://gitter.im/spf13/afero?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# Overview + +Afero is an filesystem framework providing a simple, uniform and universal API +interacting with any filesystem, as an abstraction layer providing interfaces, +types and methods. Afero has an exceptionally clean interface and simple design +without needless constructors or initialization methods. + +Afero is also a library providing a base set of interoperable backend +filesystems that make it easy to work with afero while retaining all the power +and benefit of the os and ioutil packages. + +Afero provides significant improvements over using the os package alone, most +notably the ability to create mock and testing filesystems without relying on the disk. + +It is suitable for use in a any situation where you would consider using the OS +package as it provides an additional abstraction that makes it easy to use a +memory backed file system during testing. It also adds support for the http +filesystem for full interoperability. + + +## Afero Features + +* A single consistent API for accessing a variety of filesystems +* Interoperation between a variety of file system types +* A set of interfaces to encourage and enforce interoperability between backends +* An atomic cross platform memory backed file system +* Support for compositional (union) file systems by combining multiple file systems acting as one +* Specialized backends which modify existing filesystems (Read Only, Regexp filtered) +* A set of utility functions ported from io, ioutil & hugo to be afero aware + + +# Using Afero + +Afero is easy to use and easier to adopt. + +A few different ways you could use Afero: + +* Use the interfaces alone to define you own file system. +* Wrap for the OS packages. +* Define different filesystems for different parts of your application. +* Use Afero for mock filesystems while testing + +## Step 1: Install Afero + +First use go get to install the latest version of the library. + + $ go get github.com/spf13/afero + +Next include Afero in your application. +```go +import "github.com/spf13/afero" +``` + +## Step 2: Declare a backend + +First define a package variable and set it to a pointer to a filesystem. +```go +var AppFs = afero.NewMemMapFs() + +or + +var AppFs = afero.NewOsFs() +``` +It is important to note that if you repeat the composite literal you +will be using a completely new and isolated filesystem. In the case of +OsFs it will still use the same underlying filesystem but will reduce +the ability to drop in other filesystems as desired. + +## Step 3: Use it like you would the OS package + +Throughout your application use any function and method like you normally +would. + +So if my application before had: +```go +os.Open('/tmp/foo') +``` +We would replace it with: +```go +AppFs.Open('/tmp/foo') +``` + +`AppFs` being the variable we defined above. + + +## List of all available functions + +File System Methods Available: +```go +Chmod(name string, mode os.FileMode) : error +Chtimes(name string, atime time.Time, mtime time.Time) : error +Create(name string) : File, error +Mkdir(name string, perm os.FileMode) : error +MkdirAll(path string, perm os.FileMode) : error +Name() : string +Open(name string) : File, error +OpenFile(name string, flag int, perm os.FileMode) : File, error +Remove(name string) : error +RemoveAll(path string) : error +Rename(oldname, newname string) : error +Stat(name string) : os.FileInfo, error +``` +File Interfaces and Methods Available: +```go +io.Closer +io.Reader +io.ReaderAt +io.Seeker +io.Writer +io.WriterAt + +Name() : string +Readdir(count int) : []os.FileInfo, error +Readdirnames(n int) : []string, error +Stat() : os.FileInfo, error +Sync() : error +Truncate(size int64) : error +WriteString(s string) : ret int, err error +``` +In some applications it may make sense to define a new package that +simply exports the file system variable for easy access from anywhere. + +## Using Afero's utility functions + +Afero provides a set of functions to make it easier to use the underlying file systems. +These functions have been primarily ported from io & ioutil with some developed for Hugo. + +The afero utilities support all afero compatible backends. + +The list of utilities includes: + +```go +DirExists(path string) (bool, error) +Exists(path string) (bool, error) +FileContainsBytes(filename string, subslice []byte) (bool, error) +GetTempDir(subPath string) string +IsDir(path string) (bool, error) +IsEmpty(path string) (bool, error) +ReadDir(dirname string) ([]os.FileInfo, error) +ReadFile(filename string) ([]byte, error) +SafeWriteReader(path string, r io.Reader) (err error) +TempDir(dir, prefix string) (name string, err error) +TempFile(dir, prefix string) (f File, err error) +Walk(root string, walkFn filepath.WalkFunc) error +WriteFile(filename string, data []byte, perm os.FileMode) error +WriteReader(path string, r io.Reader) (err error) +``` +For a complete list see [Afero's GoDoc](https://godoc.org/github.com/spf13/afero) + +They are available under two different approaches to use. You can either call +them directly where the first parameter of each function will be the file +system, or you can declare a new `Afero`, a custom type used to bind these +functions as methods to a given filesystem. + +### Calling utilities directly + +```go +fs := new(afero.MemMapFs) +f, err := afero.TempFile(fs,"", "ioutil-test") + +``` + +### Calling via Afero + +```go +fs := afero.NewMemMapFs() +afs := &afero.Afero{Fs: fs} +f, err := afs.TempFile("", "ioutil-test") +``` + +## Using Afero for Testing + +There is a large benefit to using a mock filesystem for testing. It has a +completely blank state every time it is initialized and can be easily +reproducible regardless of OS. You could create files to your heart’s content +and the file access would be fast while also saving you from all the annoying +issues with deleting temporary files, Windows file locking, etc. The MemMapFs +backend is perfect for testing. + +* Much faster than performing I/O operations on disk +* Avoid security issues and permissions +* Far more control. 'rm -rf /' with confidence +* Test setup is far more easier to do +* No test cleanup needed + +One way to accomplish this is to define a variable as mentioned above. +In your application this will be set to afero.NewOsFs() during testing you +can set it to afero.NewMemMapFs(). + +It wouldn't be uncommon to have each test initialize a blank slate memory +backend. To do this I would define my `appFS = afero.NewOsFs()` somewhere +appropriate in my application code. This approach ensures that Tests are order +independent, with no test relying on the state left by an earlier test. + +Then in my tests I would initialize a new MemMapFs for each test: +```go +func TestExist(t *testing.T) { + appFS := afero.NewMemMapFs() + // create test files and directories + appFS.MkdirAll("src/a", 0755) + afero.WriteFile(appFS, "src/a/b", []byte("file b"), 0644) + afero.WriteFile(appFS, "src/c", []byte("file c"), 0644) + name := "src/c" + _, err := appFS.Stat(name) + if os.IsNotExist(err) { + t.Errorf("file \"%s\" does not exist.\n", name) + } +} +``` + +# Available Backends + +## Operating System Native + +### OsFs + +The first is simply a wrapper around the native OS calls. This makes it +very easy to use as all of the calls are the same as the existing OS +calls. It also makes it trivial to have your code use the OS during +operation and a mock filesystem during testing or as needed. + +```go +appfs := afero.NewOsFs() +appfs.MkdirAll("src/a", 0755)) +``` + +## Memory Backed Storage + +### MemMapFs + +Afero also provides a fully atomic memory backed filesystem perfect for use in +mocking and to speed up unnecessary disk io when persistence isn’t +necessary. It is fully concurrent and will work within go routines +safely. + +```go +mm := afero.NewMemMapFs() +mm.MkdirAll("src/a", 0755)) +``` + +#### InMemoryFile + +As part of MemMapFs, Afero also provides an atomic, fully concurrent memory +backed file implementation. This can be used in other memory backed file +systems with ease. Plans are to add a radix tree memory stored file +system using InMemoryFile. + +## Network Interfaces + +### SftpFs + +Afero has experimental support for secure file transfer protocol (sftp). Which can +be used to perform file operations over a encrypted channel. + +## Filtering Backends + +### BasePathFs + +The BasePathFs restricts all operations to a given path within an Fs. +The given file name to the operations on this Fs will be prepended with +the base path before calling the source Fs. + +```go +bp := afero.NewBasePathFs(afero.NewOsFs(), "/base/path") +``` + +### ReadOnlyFs + +A thin wrapper around the source Fs providing a read only view. + +```go +fs := afero.NewReadOnlyFs(afero.NewOsFs()) +_, err := fs.Create("/file.txt") +// err = syscall.EPERM +``` + +# RegexpFs + +A filtered view on file names, any file NOT matching +the passed regexp will be treated as non-existing. +Files not matching the regexp provided will not be created. +Directories are not filtered. + +```go +fs := afero.NewRegexpFs(afero.NewMemMapFs(), regexp.MustCompile(`\.txt$`)) +_, err := fs.Create("/file.html") +// err = syscall.ENOENT +``` + +### HttpFs + +Afero provides an http compatible backend which can wrap any of the existing +backends. + +The Http package requires a slightly specific version of Open which +returns an http.File type. + +Afero provides an httpFs file system which satisfies this requirement. +Any Afero FileSystem can be used as an httpFs. + +```go +httpFs := afero.NewHttpFs() +fileserver := http.FileServer(httpFs.Dir())) +http.Handle("/", fileserver) +``` + +## Composite Backends + +Afero provides the ability have two filesystems (or more) act as a single +file system. + +### CacheOnReadFs + +The CacheOnReadFs will lazily make copies of any accessed files from the base +layer into the overlay. Subsequent reads will be pulled from the overlay +directly permitting the request is within the cache duration of when it was +created in the overlay. + +If the base filesystem is writeable, any changes to files will be +done first to the base, then to the overlay layer. Write calls to open file +handles like `Write()` or `Truncate()` to the overlay first. + +To writing files to the overlay only, you can use the overlay Fs directly (not +via the union Fs). + +Cache files in the layer for the given time.Duration, a cache duration of 0 +means "forever" meaning the file will not be re-requested from the base ever. + +A read-only base will make the overlay also read-only but still copy files +from the base to the overlay when they're not present (or outdated) in the +caching layer. + +```go +base := afero.NewOsFs() +layer := afero.NewMemMapFs() +ufs := afero.NewCacheOnReadFs(base, layer, 100 * time.Second) +``` + +### CopyOnWriteFs() + +The CopyOnWriteFs is a read only base file system with a potentially +writeable layer on top. + +Read operations will first look in the overlay and if not found there, will +serve the file from the base. + +Changes to the file system will only be made in the overlay. + +Any attempt to modify a file found only in the base will copy the file to the +overlay layer before modification (including opening a file with a writable +handle). + +Removing and Renaming files present only in the base layer is not currently +permitted. If a file is present in the base layer and the overlay, only the +overlay will be removed/renamed. + +```go + base := afero.NewOsFs() + roBase := afero.NewReadOnlyFs(base) + ufs := afero.NewCopyOnWriteFs(roBase, afero.NewMemMapFs()) + + fh, _ = ufs.Create("/home/test/file2.txt") + fh.WriteString("This is a test") + fh.Close() +``` + +In this example all write operations will only occur in memory (MemMapFs) +leaving the base filesystem (OsFs) untouched. + + +## Desired/possible backends + +The following is a short list of possible backends we hope someone will +implement: + +* SSH +* ZIP +* TAR +* S3 + +# About the project + +## What's in the name + +Afero comes from the latin roots Ad-Facere. + +**"Ad"** is a prefix meaning "to". + +**"Facere"** is a form of the root "faciō" making "make or do". + +The literal meaning of afero is "to make" or "to do" which seems very fitting +for a library that allows one to make files and directories and do things with them. + +The English word that shares the same roots as Afero is "affair". Affair shares +the same concept but as a noun it means "something that is made or done" or "an +object of a particular type". + +It's also nice that unlike some of my other libraries (hugo, cobra, viper) it +Googles very well. + +## Release Notes + +* **0.10.0** 2015.12.10 + * Full compatibility with Windows + * Introduction of afero utilities + * Test suite rewritten to work cross platform + * Normalize paths for MemMapFs + * Adding Sync to the file interface + * **Breaking Change** Walk and ReadDir have changed parameter order + * Moving types used by MemMapFs to a subpackage + * General bugfixes and improvements +* **0.9.0** 2015.11.05 + * New Walk function similar to filepath.Walk + * MemMapFs.OpenFile handles O_CREATE, O_APPEND, O_TRUNC + * MemMapFs.Remove now really deletes the file + * InMemoryFile.Readdir and Readdirnames work correctly + * InMemoryFile functions lock it for concurrent access + * Test suite improvements +* **0.8.0** 2014.10.28 + * First public version + * Interfaces feel ready for people to build using + * Interfaces satisfy all known uses + * MemMapFs passes the majority of the OS test suite + * OsFs passes the majority of the OS test suite + +## Contributing + +1. Fork it +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create new Pull Request + +## Contributors + +Names in no particular order: + +* [spf13](https://github.com/spf13) +* [jaqx0r](https://github.com/jaqx0r) +* [mbertschler](https://github.com/mbertschler) +* [xor-gate](https://github.com/xor-gate) + +## License + +Afero is released under the Apache 2.0 license. See +[LICENSE.txt](https://github.com/spf13/afero/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/afero/afero.go b/vendor/github.com/spf13/afero/afero.go new file mode 100644 index 0000000..f5b5e12 --- /dev/null +++ b/vendor/github.com/spf13/afero/afero.go @@ -0,0 +1,108 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package afero provides types and methods for interacting with the filesystem, +// as an abstraction layer. + +// Afero also provides a few implementations that are mostly interoperable. One that +// uses the operating system filesystem, one that uses memory to store files +// (cross platform) and an interface that should be implemented if you want to +// provide your own filesystem. + +package afero + +import ( + "errors" + "io" + "os" + "time" +) + +type Afero struct { + Fs +} + +// File represents a file in the filesystem. +type File interface { + io.Closer + io.Reader + io.ReaderAt + io.Seeker + io.Writer + io.WriterAt + + Name() string + Readdir(count int) ([]os.FileInfo, error) + Readdirnames(n int) ([]string, error) + Stat() (os.FileInfo, error) + Sync() error + Truncate(size int64) error + WriteString(s string) (ret int, err error) +} + +// Fs is the filesystem interface. +// +// Any simulated or real filesystem should implement this interface. +type Fs interface { + // Create creates a file in the filesystem, returning the file and an + // error, if any happens. + Create(name string) (File, error) + + // Mkdir creates a directory in the filesystem, return an error if any + // happens. + Mkdir(name string, perm os.FileMode) error + + // MkdirAll creates a directory path and all parents that does not exist + // yet. + MkdirAll(path string, perm os.FileMode) error + + // Open opens a file, returning it or an error, if any happens. + Open(name string) (File, error) + + // OpenFile opens a file using the given flags and the given mode. + OpenFile(name string, flag int, perm os.FileMode) (File, error) + + // Remove removes a file identified by name, returning an error, if any + // happens. + Remove(name string) error + + // RemoveAll removes a directory path and any children it contains. It + // does not fail if the path does not exist (return nil). + RemoveAll(path string) error + + // Rename renames a file. + Rename(oldname, newname string) error + + // Stat returns a FileInfo describing the named file, or an error, if any + // happens. + Stat(name string) (os.FileInfo, error) + + // The name of this FileSystem + Name() string + + //Chmod changes the mode of the named file to mode. + Chmod(name string, mode os.FileMode) error + + //Chtimes changes the access and modification times of the named file + Chtimes(name string, atime time.Time, mtime time.Time) error +} + +var ( + ErrFileClosed = errors.New("File is closed") + ErrOutOfRange = errors.New("Out of range") + ErrTooLarge = errors.New("Too large") + ErrFileNotFound = os.ErrNotExist + ErrFileExists = os.ErrExist + ErrDestinationExists = os.ErrExist +) diff --git a/vendor/github.com/spf13/afero/appveyor.yml b/vendor/github.com/spf13/afero/appveyor.yml new file mode 100644 index 0000000..a633ad5 --- /dev/null +++ b/vendor/github.com/spf13/afero/appveyor.yml @@ -0,0 +1,15 @@ +version: '{build}' +clone_folder: C:\gopath\src\github.com\spf13\afero +environment: + GOPATH: C:\gopath +build_script: +- cmd: >- + go version + + go env + + go get -v github.com/spf13/afero/... + + go build github.com/spf13/afero +test_script: +- cmd: go test -race -v github.com/spf13/afero/... diff --git a/vendor/github.com/spf13/afero/basepath.go b/vendor/github.com/spf13/afero/basepath.go new file mode 100644 index 0000000..616ff8f --- /dev/null +++ b/vendor/github.com/spf13/afero/basepath.go @@ -0,0 +1,180 @@ +package afero + +import ( + "os" + "path/filepath" + "runtime" + "strings" + "time" +) + +var _ Lstater = (*BasePathFs)(nil) + +// The BasePathFs restricts all operations to a given path within an Fs. +// The given file name to the operations on this Fs will be prepended with +// the base path before calling the base Fs. +// Any file name (after filepath.Clean()) outside this base path will be +// treated as non existing file. +// +// Note that it does not clean the error messages on return, so you may +// reveal the real path on errors. +type BasePathFs struct { + source Fs + path string +} + +type BasePathFile struct { + File + path string +} + +func (f *BasePathFile) Name() string { + sourcename := f.File.Name() + return strings.TrimPrefix(sourcename, filepath.Clean(f.path)) +} + +func NewBasePathFs(source Fs, path string) Fs { + return &BasePathFs{source: source, path: path} +} + +// on a file outside the base path it returns the given file name and an error, +// else the given file with the base path prepended +func (b *BasePathFs) RealPath(name string) (path string, err error) { + if err := validateBasePathName(name); err != nil { + return name, err + } + + bpath := filepath.Clean(b.path) + path = filepath.Clean(filepath.Join(bpath, name)) + if !strings.HasPrefix(path, bpath) { + return name, os.ErrNotExist + } + + return path, nil +} + +func validateBasePathName(name string) error { + if runtime.GOOS != "windows" { + // Not much to do here; + // the virtual file paths all look absolute on *nix. + return nil + } + + // On Windows a common mistake would be to provide an absolute OS path + // We could strip out the base part, but that would not be very portable. + if filepath.IsAbs(name) { + return os.ErrNotExist + } + + return nil +} + +func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "chtimes", Path: name, Err: err} + } + return b.source.Chtimes(name, atime, mtime) +} + +func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "chmod", Path: name, Err: err} + } + return b.source.Chmod(name, mode) +} + +func (b *BasePathFs) Name() string { + return "BasePathFs" +} + +func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "stat", Path: name, Err: err} + } + return b.source.Stat(name) +} + +func (b *BasePathFs) Rename(oldname, newname string) (err error) { + if oldname, err = b.RealPath(oldname); err != nil { + return &os.PathError{Op: "rename", Path: oldname, Err: err} + } + if newname, err = b.RealPath(newname); err != nil { + return &os.PathError{Op: "rename", Path: newname, Err: err} + } + return b.source.Rename(oldname, newname) +} + +func (b *BasePathFs) RemoveAll(name string) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "remove_all", Path: name, Err: err} + } + return b.source.RemoveAll(name) +} + +func (b *BasePathFs) Remove(name string) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "remove", Path: name, Err: err} + } + return b.source.Remove(name) +} + +func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "openfile", Path: name, Err: err} + } + sourcef, err := b.source.OpenFile(name, flag, mode) + if err != nil { + return nil, err + } + return &BasePathFile{sourcef, b.path}, nil +} + +func (b *BasePathFs) Open(name string) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "open", Path: name, Err: err} + } + sourcef, err := b.source.Open(name) + if err != nil { + return nil, err + } + return &BasePathFile{File: sourcef, path: b.path}, nil +} + +func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "mkdir", Path: name, Err: err} + } + return b.source.Mkdir(name, mode) +} + +func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "mkdir", Path: name, Err: err} + } + return b.source.MkdirAll(name, mode) +} + +func (b *BasePathFs) Create(name string) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "create", Path: name, Err: err} + } + sourcef, err := b.source.Create(name) + if err != nil { + return nil, err + } + return &BasePathFile{File: sourcef, path: b.path}, nil +} + +func (b *BasePathFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { + name, err := b.RealPath(name) + if err != nil { + return nil, false, &os.PathError{Op: "lstat", Path: name, Err: err} + } + if lstater, ok := b.source.(Lstater); ok { + return lstater.LstatIfPossible(name) + } + fi, err := b.source.Stat(name) + return fi, false, err +} + +// vim: ts=4 sw=4 noexpandtab nolist syn=go diff --git a/vendor/github.com/spf13/afero/cacheOnReadFs.go b/vendor/github.com/spf13/afero/cacheOnReadFs.go new file mode 100644 index 0000000..29a26c6 --- /dev/null +++ b/vendor/github.com/spf13/afero/cacheOnReadFs.go @@ -0,0 +1,290 @@ +package afero + +import ( + "os" + "syscall" + "time" +) + +// If the cache duration is 0, cache time will be unlimited, i.e. once +// a file is in the layer, the base will never be read again for this file. +// +// For cache times greater than 0, the modification time of a file is +// checked. Note that a lot of file system implementations only allow a +// resolution of a second for timestamps... or as the godoc for os.Chtimes() +// states: "The underlying filesystem may truncate or round the values to a +// less precise time unit." +// +// This caching union will forward all write calls also to the base file +// system first. To prevent writing to the base Fs, wrap it in a read-only +// filter - Note: this will also make the overlay read-only, for writing files +// in the overlay, use the overlay Fs directly, not via the union Fs. +type CacheOnReadFs struct { + base Fs + layer Fs + cacheTime time.Duration +} + +func NewCacheOnReadFs(base Fs, layer Fs, cacheTime time.Duration) Fs { + return &CacheOnReadFs{base: base, layer: layer, cacheTime: cacheTime} +} + +type cacheState int + +const ( + // not present in the overlay, unknown if it exists in the base: + cacheMiss cacheState = iota + // present in the overlay and in base, base file is newer: + cacheStale + // present in the overlay - with cache time == 0 it may exist in the base, + // with cacheTime > 0 it exists in the base and is same age or newer in the + // overlay + cacheHit + // happens if someone writes directly to the overlay without + // going through this union + cacheLocal +) + +func (u *CacheOnReadFs) cacheStatus(name string) (state cacheState, fi os.FileInfo, err error) { + var lfi, bfi os.FileInfo + lfi, err = u.layer.Stat(name) + if err == nil { + if u.cacheTime == 0 { + return cacheHit, lfi, nil + } + if lfi.ModTime().Add(u.cacheTime).Before(time.Now()) { + bfi, err = u.base.Stat(name) + if err != nil { + return cacheLocal, lfi, nil + } + if bfi.ModTime().After(lfi.ModTime()) { + return cacheStale, bfi, nil + } + } + return cacheHit, lfi, nil + } + + if err == syscall.ENOENT || os.IsNotExist(err) { + return cacheMiss, nil, nil + } + + return cacheMiss, nil, err +} + +func (u *CacheOnReadFs) copyToLayer(name string) error { + return copyToLayer(u.base, u.layer, name) +} + +func (u *CacheOnReadFs) Chtimes(name string, atime, mtime time.Time) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Chtimes(name, atime, mtime) + case cacheStale, cacheMiss: + if err := u.copyToLayer(name); err != nil { + return err + } + err = u.base.Chtimes(name, atime, mtime) + } + if err != nil { + return err + } + return u.layer.Chtimes(name, atime, mtime) +} + +func (u *CacheOnReadFs) Chmod(name string, mode os.FileMode) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Chmod(name, mode) + case cacheStale, cacheMiss: + if err := u.copyToLayer(name); err != nil { + return err + } + err = u.base.Chmod(name, mode) + } + if err != nil { + return err + } + return u.layer.Chmod(name, mode) +} + +func (u *CacheOnReadFs) Stat(name string) (os.FileInfo, error) { + st, fi, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + switch st { + case cacheMiss: + return u.base.Stat(name) + default: // cacheStale has base, cacheHit and cacheLocal the layer os.FileInfo + return fi, nil + } +} + +func (u *CacheOnReadFs) Rename(oldname, newname string) error { + st, _, err := u.cacheStatus(oldname) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Rename(oldname, newname) + case cacheStale, cacheMiss: + if err := u.copyToLayer(oldname); err != nil { + return err + } + err = u.base.Rename(oldname, newname) + } + if err != nil { + return err + } + return u.layer.Rename(oldname, newname) +} + +func (u *CacheOnReadFs) Remove(name string) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit, cacheStale, cacheMiss: + err = u.base.Remove(name) + } + if err != nil { + return err + } + return u.layer.Remove(name) +} + +func (u *CacheOnReadFs) RemoveAll(name string) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit, cacheStale, cacheMiss: + err = u.base.RemoveAll(name) + } + if err != nil { + return err + } + return u.layer.RemoveAll(name) +} + +func (u *CacheOnReadFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + st, _, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + switch st { + case cacheLocal, cacheHit: + default: + if err := u.copyToLayer(name); err != nil { + return nil, err + } + } + if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + bfi, err := u.base.OpenFile(name, flag, perm) + if err != nil { + return nil, err + } + lfi, err := u.layer.OpenFile(name, flag, perm) + if err != nil { + bfi.Close() // oops, what if O_TRUNC was set and file opening in the layer failed...? + return nil, err + } + return &UnionFile{Base: bfi, Layer: lfi}, nil + } + return u.layer.OpenFile(name, flag, perm) +} + +func (u *CacheOnReadFs) Open(name string) (File, error) { + st, fi, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + + switch st { + case cacheLocal: + return u.layer.Open(name) + + case cacheMiss: + bfi, err := u.base.Stat(name) + if err != nil { + return nil, err + } + if bfi.IsDir() { + return u.base.Open(name) + } + if err := u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.Open(name) + + case cacheStale: + if !fi.IsDir() { + if err := u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.Open(name) + } + case cacheHit: + if !fi.IsDir() { + return u.layer.Open(name) + } + } + // the dirs from cacheHit, cacheStale fall down here: + bfile, _ := u.base.Open(name) + lfile, err := u.layer.Open(name) + if err != nil && bfile == nil { + return nil, err + } + return &UnionFile{Base: bfile, Layer: lfile}, nil +} + +func (u *CacheOnReadFs) Mkdir(name string, perm os.FileMode) error { + err := u.base.Mkdir(name, perm) + if err != nil { + return err + } + return u.layer.MkdirAll(name, perm) // yes, MkdirAll... we cannot assume it exists in the cache +} + +func (u *CacheOnReadFs) Name() string { + return "CacheOnReadFs" +} + +func (u *CacheOnReadFs) MkdirAll(name string, perm os.FileMode) error { + err := u.base.MkdirAll(name, perm) + if err != nil { + return err + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CacheOnReadFs) Create(name string) (File, error) { + bfh, err := u.base.Create(name) + if err != nil { + return nil, err + } + lfh, err := u.layer.Create(name) + if err != nil { + // oops, see comment about OS_TRUNC above, should we remove? then we have to + // remember if the file did not exist before + bfh.Close() + return nil, err + } + return &UnionFile{Base: bfh, Layer: lfh}, nil +} diff --git a/vendor/github.com/spf13/afero/const_bsds.go b/vendor/github.com/spf13/afero/const_bsds.go new file mode 100644 index 0000000..5728243 --- /dev/null +++ b/vendor/github.com/spf13/afero/const_bsds.go @@ -0,0 +1,22 @@ +// Copyright © 2016 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build darwin openbsd freebsd netbsd dragonfly + +package afero + +import ( + "syscall" +) + +const BADFD = syscall.EBADF diff --git a/vendor/github.com/spf13/afero/const_win_unix.go b/vendor/github.com/spf13/afero/const_win_unix.go new file mode 100644 index 0000000..968fc27 --- /dev/null +++ b/vendor/github.com/spf13/afero/const_win_unix.go @@ -0,0 +1,25 @@ +// Copyright © 2016 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +build !darwin +// +build !openbsd +// +build !freebsd +// +build !dragonfly +// +build !netbsd + +package afero + +import ( + "syscall" +) + +const BADFD = syscall.EBADFD diff --git a/vendor/github.com/spf13/afero/copyOnWriteFs.go b/vendor/github.com/spf13/afero/copyOnWriteFs.go new file mode 100644 index 0000000..9aef397 --- /dev/null +++ b/vendor/github.com/spf13/afero/copyOnWriteFs.go @@ -0,0 +1,292 @@ +package afero + +import ( + "fmt" + "os" + "path/filepath" + "syscall" + "time" +) + +var _ Lstater = (*CopyOnWriteFs)(nil) + +// The CopyOnWriteFs is a union filesystem: a read only base file system with +// a possibly writeable layer on top. Changes to the file system will only +// be made in the overlay: Changing an existing file in the base layer which +// is not present in the overlay will copy the file to the overlay ("changing" +// includes also calls to e.g. Chtimes() and Chmod()). +// +// Reading directories is currently only supported via Open(), not OpenFile(). +type CopyOnWriteFs struct { + base Fs + layer Fs +} + +func NewCopyOnWriteFs(base Fs, layer Fs) Fs { + return &CopyOnWriteFs{base: base, layer: layer} +} + +// Returns true if the file is not in the overlay +func (u *CopyOnWriteFs) isBaseFile(name string) (bool, error) { + if _, err := u.layer.Stat(name); err == nil { + return false, nil + } + _, err := u.base.Stat(name) + if err != nil { + if oerr, ok := err.(*os.PathError); ok { + if oerr.Err == os.ErrNotExist || oerr.Err == syscall.ENOENT || oerr.Err == syscall.ENOTDIR { + return false, nil + } + } + if err == syscall.ENOENT { + return false, nil + } + } + return true, err +} + +func (u *CopyOnWriteFs) copyToLayer(name string) error { + return copyToLayer(u.base, u.layer, name) +} + +func (u *CopyOnWriteFs) Chtimes(name string, atime, mtime time.Time) error { + b, err := u.isBaseFile(name) + if err != nil { + return err + } + if b { + if err := u.copyToLayer(name); err != nil { + return err + } + } + return u.layer.Chtimes(name, atime, mtime) +} + +func (u *CopyOnWriteFs) Chmod(name string, mode os.FileMode) error { + b, err := u.isBaseFile(name) + if err != nil { + return err + } + if b { + if err := u.copyToLayer(name); err != nil { + return err + } + } + return u.layer.Chmod(name, mode) +} + +func (u *CopyOnWriteFs) Stat(name string) (os.FileInfo, error) { + fi, err := u.layer.Stat(name) + if err != nil { + isNotExist := u.isNotExist(err) + if isNotExist { + return u.base.Stat(name) + } + return nil, err + } + return fi, nil +} + +func (u *CopyOnWriteFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { + llayer, ok1 := u.layer.(Lstater) + lbase, ok2 := u.base.(Lstater) + + if ok1 { + fi, b, err := llayer.LstatIfPossible(name) + if err == nil { + return fi, b, nil + } + + if !u.isNotExist(err) { + return nil, b, err + } + } + + if ok2 { + fi, b, err := lbase.LstatIfPossible(name) + if err == nil { + return fi, b, nil + } + if !u.isNotExist(err) { + return nil, b, err + } + } + + fi, err := u.Stat(name) + + return fi, false, err +} + +func (u *CopyOnWriteFs) isNotExist(err error) bool { + if e, ok := err.(*os.PathError); ok { + err = e.Err + } + if err == os.ErrNotExist || err == syscall.ENOENT || err == syscall.ENOTDIR { + return true + } + return false +} + +// Renaming files present only in the base layer is not permitted +func (u *CopyOnWriteFs) Rename(oldname, newname string) error { + b, err := u.isBaseFile(oldname) + if err != nil { + return err + } + if b { + return syscall.EPERM + } + return u.layer.Rename(oldname, newname) +} + +// Removing files present only in the base layer is not permitted. If +// a file is present in the base layer and the overlay, only the overlay +// will be removed. +func (u *CopyOnWriteFs) Remove(name string) error { + err := u.layer.Remove(name) + switch err { + case syscall.ENOENT: + _, err = u.base.Stat(name) + if err == nil { + return syscall.EPERM + } + return syscall.ENOENT + default: + return err + } +} + +func (u *CopyOnWriteFs) RemoveAll(name string) error { + err := u.layer.RemoveAll(name) + switch err { + case syscall.ENOENT: + _, err = u.base.Stat(name) + if err == nil { + return syscall.EPERM + } + return syscall.ENOENT + default: + return err + } +} + +func (u *CopyOnWriteFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + b, err := u.isBaseFile(name) + if err != nil { + return nil, err + } + + if flag&(os.O_WRONLY|os.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + if b { + if err = u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.OpenFile(name, flag, perm) + } + + dir := filepath.Dir(name) + isaDir, err := IsDir(u.base, dir) + if err != nil && !os.IsNotExist(err) { + return nil, err + } + if isaDir { + if err = u.layer.MkdirAll(dir, 0777); err != nil { + return nil, err + } + return u.layer.OpenFile(name, flag, perm) + } + + isaDir, err = IsDir(u.layer, dir) + if err != nil { + return nil, err + } + if isaDir { + return u.layer.OpenFile(name, flag, perm) + } + + return nil, &os.PathError{Op: "open", Path: name, Err: syscall.ENOTDIR} // ...or os.ErrNotExist? + } + if b { + return u.base.OpenFile(name, flag, perm) + } + return u.layer.OpenFile(name, flag, perm) +} + +// This function handles the 9 different possibilities caused +// by the union which are the intersection of the following... +// layer: doesn't exist, exists as a file, and exists as a directory +// base: doesn't exist, exists as a file, and exists as a directory +func (u *CopyOnWriteFs) Open(name string) (File, error) { + // Since the overlay overrides the base we check that first + b, err := u.isBaseFile(name) + if err != nil { + return nil, err + } + + // If overlay doesn't exist, return the base (base state irrelevant) + if b { + return u.base.Open(name) + } + + // If overlay is a file, return it (base state irrelevant) + dir, err := IsDir(u.layer, name) + if err != nil { + return nil, err + } + if !dir { + return u.layer.Open(name) + } + + // Overlay is a directory, base state now matters. + // Base state has 3 states to check but 2 outcomes: + // A. It's a file or non-readable in the base (return just the overlay) + // B. It's an accessible directory in the base (return a UnionFile) + + // If base is file or nonreadable, return overlay + dir, err = IsDir(u.base, name) + if !dir || err != nil { + return u.layer.Open(name) + } + + // Both base & layer are directories + // Return union file (if opens are without error) + bfile, bErr := u.base.Open(name) + lfile, lErr := u.layer.Open(name) + + // If either have errors at this point something is very wrong. Return nil and the errors + if bErr != nil || lErr != nil { + return nil, fmt.Errorf("BaseErr: %v\nOverlayErr: %v", bErr, lErr) + } + + return &UnionFile{Base: bfile, Layer: lfile}, nil +} + +func (u *CopyOnWriteFs) Mkdir(name string, perm os.FileMode) error { + dir, err := IsDir(u.base, name) + if err != nil { + return u.layer.MkdirAll(name, perm) + } + if dir { + return syscall.EEXIST + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CopyOnWriteFs) Name() string { + return "CopyOnWriteFs" +} + +func (u *CopyOnWriteFs) MkdirAll(name string, perm os.FileMode) error { + dir, err := IsDir(u.base, name) + if err != nil { + return u.layer.MkdirAll(name, perm) + } + if dir { + return syscall.EEXIST + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CopyOnWriteFs) Create(name string) (File, error) { + return u.OpenFile(name, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0666) +} diff --git a/vendor/github.com/spf13/afero/go.mod b/vendor/github.com/spf13/afero/go.mod new file mode 100644 index 0000000..9eff4fe --- /dev/null +++ b/vendor/github.com/spf13/afero/go.mod @@ -0,0 +1 @@ +module github.com/spf13/afero diff --git a/vendor/github.com/spf13/afero/httpFs.go b/vendor/github.com/spf13/afero/httpFs.go new file mode 100644 index 0000000..c421936 --- /dev/null +++ b/vendor/github.com/spf13/afero/httpFs.go @@ -0,0 +1,110 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "errors" + "net/http" + "os" + "path" + "path/filepath" + "strings" + "time" +) + +type httpDir struct { + basePath string + fs HttpFs +} + +func (d httpDir) Open(name string) (http.File, error) { + if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 || + strings.Contains(name, "\x00") { + return nil, errors.New("http: invalid character in file path") + } + dir := string(d.basePath) + if dir == "" { + dir = "." + } + + f, err := d.fs.Open(filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name)))) + if err != nil { + return nil, err + } + return f, nil +} + +type HttpFs struct { + source Fs +} + +func NewHttpFs(source Fs) *HttpFs { + return &HttpFs{source: source} +} + +func (h HttpFs) Dir(s string) *httpDir { + return &httpDir{basePath: s, fs: h} +} + +func (h HttpFs) Name() string { return "h HttpFs" } + +func (h HttpFs) Create(name string) (File, error) { + return h.source.Create(name) +} + +func (h HttpFs) Chmod(name string, mode os.FileMode) error { + return h.source.Chmod(name, mode) +} + +func (h HttpFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return h.source.Chtimes(name, atime, mtime) +} + +func (h HttpFs) Mkdir(name string, perm os.FileMode) error { + return h.source.Mkdir(name, perm) +} + +func (h HttpFs) MkdirAll(path string, perm os.FileMode) error { + return h.source.MkdirAll(path, perm) +} + +func (h HttpFs) Open(name string) (http.File, error) { + f, err := h.source.Open(name) + if err == nil { + if httpfile, ok := f.(http.File); ok { + return httpfile, nil + } + } + return nil, err +} + +func (h HttpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + return h.source.OpenFile(name, flag, perm) +} + +func (h HttpFs) Remove(name string) error { + return h.source.Remove(name) +} + +func (h HttpFs) RemoveAll(path string) error { + return h.source.RemoveAll(path) +} + +func (h HttpFs) Rename(oldname, newname string) error { + return h.source.Rename(oldname, newname) +} + +func (h HttpFs) Stat(name string) (os.FileInfo, error) { + return h.source.Stat(name) +} diff --git a/vendor/github.com/spf13/afero/ioutil.go b/vendor/github.com/spf13/afero/ioutil.go new file mode 100644 index 0000000..5c3a3d8 --- /dev/null +++ b/vendor/github.com/spf13/afero/ioutil.go @@ -0,0 +1,230 @@ +// Copyright ©2015 The Go Authors +// Copyright ©2015 Steve Francia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "bytes" + "io" + "os" + "path/filepath" + "sort" + "strconv" + "sync" + "time" +) + +// byName implements sort.Interface. +type byName []os.FileInfo + +func (f byName) Len() int { return len(f) } +func (f byName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } +func (f byName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } + +// ReadDir reads the directory named by dirname and returns +// a list of sorted directory entries. +func (a Afero) ReadDir(dirname string) ([]os.FileInfo, error) { + return ReadDir(a.Fs, dirname) +} + +func ReadDir(fs Fs, dirname string) ([]os.FileInfo, error) { + f, err := fs.Open(dirname) + if err != nil { + return nil, err + } + list, err := f.Readdir(-1) + f.Close() + if err != nil { + return nil, err + } + sort.Sort(byName(list)) + return list, nil +} + +// ReadFile reads the file named by filename and returns the contents. +// A successful call returns err == nil, not err == EOF. Because ReadFile +// reads the whole file, it does not treat an EOF from Read as an error +// to be reported. +func (a Afero) ReadFile(filename string) ([]byte, error) { + return ReadFile(a.Fs, filename) +} + +func ReadFile(fs Fs, filename string) ([]byte, error) { + f, err := fs.Open(filename) + if err != nil { + return nil, err + } + defer f.Close() + // It's a good but not certain bet that FileInfo will tell us exactly how much to + // read, so let's try it but be prepared for the answer to be wrong. + var n int64 + + if fi, err := f.Stat(); err == nil { + // Don't preallocate a huge buffer, just in case. + if size := fi.Size(); size < 1e9 { + n = size + } + } + // As initial capacity for readAll, use n + a little extra in case Size is zero, + // and to avoid another allocation after Read has filled the buffer. The readAll + // call will read into its allocated internal buffer cheaply. If the size was + // wrong, we'll either waste some space off the end or reallocate as needed, but + // in the overwhelmingly common case we'll get it just right. + return readAll(f, n+bytes.MinRead) +} + +// readAll reads from r until an error or EOF and returns the data it read +// from the internal buffer allocated with a specified capacity. +func readAll(r io.Reader, capacity int64) (b []byte, err error) { + buf := bytes.NewBuffer(make([]byte, 0, capacity)) + // If the buffer overflows, we will get bytes.ErrTooLarge. + // Return that as an error. Any other panic remains. + defer func() { + e := recover() + if e == nil { + return + } + if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { + err = panicErr + } else { + panic(e) + } + }() + _, err = buf.ReadFrom(r) + return buf.Bytes(), err +} + +// ReadAll reads from r until an error or EOF and returns the data it read. +// A successful call returns err == nil, not err == EOF. Because ReadAll is +// defined to read from src until EOF, it does not treat an EOF from Read +// as an error to be reported. +func ReadAll(r io.Reader) ([]byte, error) { + return readAll(r, bytes.MinRead) +} + +// WriteFile writes data to a file named by filename. +// If the file does not exist, WriteFile creates it with permissions perm; +// otherwise WriteFile truncates it before writing. +func (a Afero) WriteFile(filename string, data []byte, perm os.FileMode) error { + return WriteFile(a.Fs, filename, data, perm) +} + +func WriteFile(fs Fs, filename string, data []byte, perm os.FileMode) error { + f, err := fs.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) + if err != nil { + return err + } + n, err := f.Write(data) + if err == nil && n < len(data) { + err = io.ErrShortWrite + } + if err1 := f.Close(); err == nil { + err = err1 + } + return err +} + +// Random number state. +// We generate random temporary file names so that there's a good +// chance the file doesn't exist yet - keeps the number of tries in +// TempFile to a minimum. +var rand uint32 +var randmu sync.Mutex + +func reseed() uint32 { + return uint32(time.Now().UnixNano() + int64(os.Getpid())) +} + +func nextSuffix() string { + randmu.Lock() + r := rand + if r == 0 { + r = reseed() + } + r = r*1664525 + 1013904223 // constants from Numerical Recipes + rand = r + randmu.Unlock() + return strconv.Itoa(int(1e9 + r%1e9))[1:] +} + +// TempFile creates a new temporary file in the directory dir +// with a name beginning with prefix, opens the file for reading +// and writing, and returns the resulting *File. +// If dir is the empty string, TempFile uses the default directory +// for temporary files (see os.TempDir). +// Multiple programs calling TempFile simultaneously +// will not choose the same file. The caller can use f.Name() +// to find the pathname of the file. It is the caller's responsibility +// to remove the file when no longer needed. +func (a Afero) TempFile(dir, prefix string) (f File, err error) { + return TempFile(a.Fs, dir, prefix) +} + +func TempFile(fs Fs, dir, prefix string) (f File, err error) { + if dir == "" { + dir = os.TempDir() + } + + nconflict := 0 + for i := 0; i < 10000; i++ { + name := filepath.Join(dir, prefix+nextSuffix()) + f, err = fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) + if os.IsExist(err) { + if nconflict++; nconflict > 10 { + randmu.Lock() + rand = reseed() + randmu.Unlock() + } + continue + } + break + } + return +} + +// TempDir creates a new temporary directory in the directory dir +// with a name beginning with prefix and returns the path of the +// new directory. If dir is the empty string, TempDir uses the +// default directory for temporary files (see os.TempDir). +// Multiple programs calling TempDir simultaneously +// will not choose the same directory. It is the caller's responsibility +// to remove the directory when no longer needed. +func (a Afero) TempDir(dir, prefix string) (name string, err error) { + return TempDir(a.Fs, dir, prefix) +} +func TempDir(fs Fs, dir, prefix string) (name string, err error) { + if dir == "" { + dir = os.TempDir() + } + + nconflict := 0 + for i := 0; i < 10000; i++ { + try := filepath.Join(dir, prefix+nextSuffix()) + err = fs.Mkdir(try, 0700) + if os.IsExist(err) { + if nconflict++; nconflict > 10 { + randmu.Lock() + rand = reseed() + randmu.Unlock() + } + continue + } + if err == nil { + name = try + } + break + } + return +} diff --git a/vendor/github.com/spf13/afero/lstater.go b/vendor/github.com/spf13/afero/lstater.go new file mode 100644 index 0000000..89c1bfc --- /dev/null +++ b/vendor/github.com/spf13/afero/lstater.go @@ -0,0 +1,27 @@ +// Copyright © 2018 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "os" +) + +// Lstater is an optional interface in Afero. It is only implemented by the +// filesystems saying so. +// It will call Lstat if the filesystem iself is, or it delegates to, the os filesystem. +// Else it will call Stat. +// In addtion to the FileInfo, it will return a boolean telling whether Lstat was called or not. +type Lstater interface { + LstatIfPossible(name string) (os.FileInfo, bool, error) +} diff --git a/vendor/github.com/spf13/afero/match.go b/vendor/github.com/spf13/afero/match.go new file mode 100644 index 0000000..c18a87f --- /dev/null +++ b/vendor/github.com/spf13/afero/match.go @@ -0,0 +1,110 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2009 The Go Authors. All rights reserved. + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "path/filepath" + "sort" + "strings" +) + +// Glob returns the names of all files matching pattern or nil +// if there is no matching file. The syntax of patterns is the same +// as in Match. The pattern may describe hierarchical names such as +// /usr/*/bin/ed (assuming the Separator is '/'). +// +// Glob ignores file system errors such as I/O errors reading directories. +// The only possible returned error is ErrBadPattern, when pattern +// is malformed. +// +// This was adapted from (http://golang.org/pkg/path/filepath) and uses several +// built-ins from that package. +func Glob(fs Fs, pattern string) (matches []string, err error) { + if !hasMeta(pattern) { + // Lstat not supported by a ll filesystems. + if _, err = lstatIfPossible(fs, pattern); err != nil { + return nil, nil + } + return []string{pattern}, nil + } + + dir, file := filepath.Split(pattern) + switch dir { + case "": + dir = "." + case string(filepath.Separator): + // nothing + default: + dir = dir[0 : len(dir)-1] // chop off trailing separator + } + + if !hasMeta(dir) { + return glob(fs, dir, file, nil) + } + + var m []string + m, err = Glob(fs, dir) + if err != nil { + return + } + for _, d := range m { + matches, err = glob(fs, d, file, matches) + if err != nil { + return + } + } + return +} + +// glob searches for files matching pattern in the directory dir +// and appends them to matches. If the directory cannot be +// opened, it returns the existing matches. New matches are +// added in lexicographical order. +func glob(fs Fs, dir, pattern string, matches []string) (m []string, e error) { + m = matches + fi, err := fs.Stat(dir) + if err != nil { + return + } + if !fi.IsDir() { + return + } + d, err := fs.Open(dir) + if err != nil { + return + } + defer d.Close() + + names, _ := d.Readdirnames(-1) + sort.Strings(names) + + for _, n := range names { + matched, err := filepath.Match(pattern, n) + if err != nil { + return m, err + } + if matched { + m = append(m, filepath.Join(dir, n)) + } + } + return +} + +// hasMeta reports whether path contains any of the magic characters +// recognized by Match. +func hasMeta(path string) bool { + // TODO(niemeyer): Should other magic characters be added here? + return strings.IndexAny(path, "*?[") >= 0 +} diff --git a/vendor/github.com/spf13/afero/mem/dir.go b/vendor/github.com/spf13/afero/mem/dir.go new file mode 100644 index 0000000..e104013 --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/dir.go @@ -0,0 +1,37 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +type Dir interface { + Len() int + Names() []string + Files() []*FileData + Add(*FileData) + Remove(*FileData) +} + +func RemoveFromMemDir(dir *FileData, f *FileData) { + dir.memDir.Remove(f) +} + +func AddToMemDir(dir *FileData, f *FileData) { + dir.memDir.Add(f) +} + +func InitializeDir(d *FileData) { + if d.memDir == nil { + d.dir = true + d.memDir = &DirMap{} + } +} diff --git a/vendor/github.com/spf13/afero/mem/dirmap.go b/vendor/github.com/spf13/afero/mem/dirmap.go new file mode 100644 index 0000000..03a57ee --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/dirmap.go @@ -0,0 +1,43 @@ +// Copyright © 2015 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +import "sort" + +type DirMap map[string]*FileData + +func (m DirMap) Len() int { return len(m) } +func (m DirMap) Add(f *FileData) { m[f.name] = f } +func (m DirMap) Remove(f *FileData) { delete(m, f.name) } +func (m DirMap) Files() (files []*FileData) { + for _, f := range m { + files = append(files, f) + } + sort.Sort(filesSorter(files)) + return files +} + +// implement sort.Interface for []*FileData +type filesSorter []*FileData + +func (s filesSorter) Len() int { return len(s) } +func (s filesSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s filesSorter) Less(i, j int) bool { return s[i].name < s[j].name } + +func (m DirMap) Names() (names []string) { + for x := range m { + names = append(names, x) + } + return names +} diff --git a/vendor/github.com/spf13/afero/mem/file.go b/vendor/github.com/spf13/afero/mem/file.go new file mode 100644 index 0000000..7af2fb5 --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/file.go @@ -0,0 +1,317 @@ +// Copyright © 2015 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +import ( + "bytes" + "errors" + "io" + "os" + "path/filepath" + "sync" + "sync/atomic" +) + +import "time" + +const FilePathSeparator = string(filepath.Separator) + +type File struct { + // atomic requires 64-bit alignment for struct field access + at int64 + readDirCount int64 + closed bool + readOnly bool + fileData *FileData +} + +func NewFileHandle(data *FileData) *File { + return &File{fileData: data} +} + +func NewReadOnlyFileHandle(data *FileData) *File { + return &File{fileData: data, readOnly: true} +} + +func (f File) Data() *FileData { + return f.fileData +} + +type FileData struct { + sync.Mutex + name string + data []byte + memDir Dir + dir bool + mode os.FileMode + modtime time.Time +} + +func (d *FileData) Name() string { + d.Lock() + defer d.Unlock() + return d.name +} + +func CreateFile(name string) *FileData { + return &FileData{name: name, mode: os.ModeTemporary, modtime: time.Now()} +} + +func CreateDir(name string) *FileData { + return &FileData{name: name, memDir: &DirMap{}, dir: true} +} + +func ChangeFileName(f *FileData, newname string) { + f.Lock() + f.name = newname + f.Unlock() +} + +func SetMode(f *FileData, mode os.FileMode) { + f.Lock() + f.mode = mode + f.Unlock() +} + +func SetModTime(f *FileData, mtime time.Time) { + f.Lock() + setModTime(f, mtime) + f.Unlock() +} + +func setModTime(f *FileData, mtime time.Time) { + f.modtime = mtime +} + +func GetFileInfo(f *FileData) *FileInfo { + return &FileInfo{f} +} + +func (f *File) Open() error { + atomic.StoreInt64(&f.at, 0) + atomic.StoreInt64(&f.readDirCount, 0) + f.fileData.Lock() + f.closed = false + f.fileData.Unlock() + return nil +} + +func (f *File) Close() error { + f.fileData.Lock() + f.closed = true + if !f.readOnly { + setModTime(f.fileData, time.Now()) + } + f.fileData.Unlock() + return nil +} + +func (f *File) Name() string { + return f.fileData.Name() +} + +func (f *File) Stat() (os.FileInfo, error) { + return &FileInfo{f.fileData}, nil +} + +func (f *File) Sync() error { + return nil +} + +func (f *File) Readdir(count int) (res []os.FileInfo, err error) { + if !f.fileData.dir { + return nil, &os.PathError{Op: "readdir", Path: f.fileData.name, Err: errors.New("not a dir")} + } + var outLength int64 + + f.fileData.Lock() + files := f.fileData.memDir.Files()[f.readDirCount:] + if count > 0 { + if len(files) < count { + outLength = int64(len(files)) + } else { + outLength = int64(count) + } + if len(files) == 0 { + err = io.EOF + } + } else { + outLength = int64(len(files)) + } + f.readDirCount += outLength + f.fileData.Unlock() + + res = make([]os.FileInfo, outLength) + for i := range res { + res[i] = &FileInfo{files[i]} + } + + return res, err +} + +func (f *File) Readdirnames(n int) (names []string, err error) { + fi, err := f.Readdir(n) + names = make([]string, len(fi)) + for i, f := range fi { + _, names[i] = filepath.Split(f.Name()) + } + return names, err +} + +func (f *File) Read(b []byte) (n int, err error) { + f.fileData.Lock() + defer f.fileData.Unlock() + if f.closed == true { + return 0, ErrFileClosed + } + if len(b) > 0 && int(f.at) == len(f.fileData.data) { + return 0, io.EOF + } + if int(f.at) > len(f.fileData.data) { + return 0, io.ErrUnexpectedEOF + } + if len(f.fileData.data)-int(f.at) >= len(b) { + n = len(b) + } else { + n = len(f.fileData.data) - int(f.at) + } + copy(b, f.fileData.data[f.at:f.at+int64(n)]) + atomic.AddInt64(&f.at, int64(n)) + return +} + +func (f *File) ReadAt(b []byte, off int64) (n int, err error) { + atomic.StoreInt64(&f.at, off) + return f.Read(b) +} + +func (f *File) Truncate(size int64) error { + if f.closed == true { + return ErrFileClosed + } + if f.readOnly { + return &os.PathError{Op: "truncate", Path: f.fileData.name, Err: errors.New("file handle is read only")} + } + if size < 0 { + return ErrOutOfRange + } + if size > int64(len(f.fileData.data)) { + diff := size - int64(len(f.fileData.data)) + f.fileData.data = append(f.fileData.data, bytes.Repeat([]byte{00}, int(diff))...) + } else { + f.fileData.data = f.fileData.data[0:size] + } + setModTime(f.fileData, time.Now()) + return nil +} + +func (f *File) Seek(offset int64, whence int) (int64, error) { + if f.closed == true { + return 0, ErrFileClosed + } + switch whence { + case 0: + atomic.StoreInt64(&f.at, offset) + case 1: + atomic.AddInt64(&f.at, int64(offset)) + case 2: + atomic.StoreInt64(&f.at, int64(len(f.fileData.data))+offset) + } + return f.at, nil +} + +func (f *File) Write(b []byte) (n int, err error) { + if f.readOnly { + return 0, &os.PathError{Op: "write", Path: f.fileData.name, Err: errors.New("file handle is read only")} + } + n = len(b) + cur := atomic.LoadInt64(&f.at) + f.fileData.Lock() + defer f.fileData.Unlock() + diff := cur - int64(len(f.fileData.data)) + var tail []byte + if n+int(cur) < len(f.fileData.data) { + tail = f.fileData.data[n+int(cur):] + } + if diff > 0 { + f.fileData.data = append(bytes.Repeat([]byte{00}, int(diff)), b...) + f.fileData.data = append(f.fileData.data, tail...) + } else { + f.fileData.data = append(f.fileData.data[:cur], b...) + f.fileData.data = append(f.fileData.data, tail...) + } + setModTime(f.fileData, time.Now()) + + atomic.StoreInt64(&f.at, int64(len(f.fileData.data))) + return +} + +func (f *File) WriteAt(b []byte, off int64) (n int, err error) { + atomic.StoreInt64(&f.at, off) + return f.Write(b) +} + +func (f *File) WriteString(s string) (ret int, err error) { + return f.Write([]byte(s)) +} + +func (f *File) Info() *FileInfo { + return &FileInfo{f.fileData} +} + +type FileInfo struct { + *FileData +} + +// Implements os.FileInfo +func (s *FileInfo) Name() string { + s.Lock() + _, name := filepath.Split(s.name) + s.Unlock() + return name +} +func (s *FileInfo) Mode() os.FileMode { + s.Lock() + defer s.Unlock() + return s.mode +} +func (s *FileInfo) ModTime() time.Time { + s.Lock() + defer s.Unlock() + return s.modtime +} +func (s *FileInfo) IsDir() bool { + s.Lock() + defer s.Unlock() + return s.dir +} +func (s *FileInfo) Sys() interface{} { return nil } +func (s *FileInfo) Size() int64 { + if s.IsDir() { + return int64(42) + } + s.Lock() + defer s.Unlock() + return int64(len(s.data)) +} + +var ( + ErrFileClosed = errors.New("File is closed") + ErrOutOfRange = errors.New("Out of range") + ErrTooLarge = errors.New("Too large") + ErrFileNotFound = os.ErrNotExist + ErrFileExists = os.ErrExist + ErrDestinationExists = os.ErrExist +) diff --git a/vendor/github.com/spf13/afero/memmap.go b/vendor/github.com/spf13/afero/memmap.go new file mode 100644 index 0000000..09498e7 --- /dev/null +++ b/vendor/github.com/spf13/afero/memmap.go @@ -0,0 +1,365 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "fmt" + "log" + "os" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/spf13/afero/mem" +) + +type MemMapFs struct { + mu sync.RWMutex + data map[string]*mem.FileData + init sync.Once +} + +func NewMemMapFs() Fs { + return &MemMapFs{} +} + +func (m *MemMapFs) getData() map[string]*mem.FileData { + m.init.Do(func() { + m.data = make(map[string]*mem.FileData) + // Root should always exist, right? + // TODO: what about windows? + m.data[FilePathSeparator] = mem.CreateDir(FilePathSeparator) + }) + return m.data +} + +func (*MemMapFs) Name() string { return "MemMapFS" } + +func (m *MemMapFs) Create(name string) (File, error) { + name = normalizePath(name) + m.mu.Lock() + file := mem.CreateFile(name) + m.getData()[name] = file + m.registerWithParent(file) + m.mu.Unlock() + return mem.NewFileHandle(file), nil +} + +func (m *MemMapFs) unRegisterWithParent(fileName string) error { + f, err := m.lockfreeOpen(fileName) + if err != nil { + return err + } + parent := m.findParent(f) + if parent == nil { + log.Panic("parent of ", f.Name(), " is nil") + } + + parent.Lock() + mem.RemoveFromMemDir(parent, f) + parent.Unlock() + return nil +} + +func (m *MemMapFs) findParent(f *mem.FileData) *mem.FileData { + pdir, _ := filepath.Split(f.Name()) + pdir = filepath.Clean(pdir) + pfile, err := m.lockfreeOpen(pdir) + if err != nil { + return nil + } + return pfile +} + +func (m *MemMapFs) registerWithParent(f *mem.FileData) { + if f == nil { + return + } + parent := m.findParent(f) + if parent == nil { + pdir := filepath.Dir(filepath.Clean(f.Name())) + err := m.lockfreeMkdir(pdir, 0777) + if err != nil { + //log.Println("Mkdir error:", err) + return + } + parent, err = m.lockfreeOpen(pdir) + if err != nil { + //log.Println("Open after Mkdir error:", err) + return + } + } + + parent.Lock() + mem.InitializeDir(parent) + mem.AddToMemDir(parent, f) + parent.Unlock() +} + +func (m *MemMapFs) lockfreeMkdir(name string, perm os.FileMode) error { + name = normalizePath(name) + x, ok := m.getData()[name] + if ok { + // Only return ErrFileExists if it's a file, not a directory. + i := mem.FileInfo{FileData: x} + if !i.IsDir() { + return ErrFileExists + } + } else { + item := mem.CreateDir(name) + m.getData()[name] = item + m.registerWithParent(item) + } + return nil +} + +func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error { + name = normalizePath(name) + + m.mu.RLock() + _, ok := m.getData()[name] + m.mu.RUnlock() + if ok { + return &os.PathError{Op: "mkdir", Path: name, Err: ErrFileExists} + } + + m.mu.Lock() + item := mem.CreateDir(name) + m.getData()[name] = item + m.registerWithParent(item) + m.mu.Unlock() + + m.Chmod(name, perm|os.ModeDir) + + return nil +} + +func (m *MemMapFs) MkdirAll(path string, perm os.FileMode) error { + err := m.Mkdir(path, perm) + if err != nil { + if err.(*os.PathError).Err == ErrFileExists { + return nil + } + return err + } + return nil +} + +// Handle some relative paths +func normalizePath(path string) string { + path = filepath.Clean(path) + + switch path { + case ".": + return FilePathSeparator + case "..": + return FilePathSeparator + default: + return path + } +} + +func (m *MemMapFs) Open(name string) (File, error) { + f, err := m.open(name) + if f != nil { + return mem.NewReadOnlyFileHandle(f), err + } + return nil, err +} + +func (m *MemMapFs) openWrite(name string) (File, error) { + f, err := m.open(name) + if f != nil { + return mem.NewFileHandle(f), err + } + return nil, err +} + +func (m *MemMapFs) open(name string) (*mem.FileData, error) { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileNotFound} + } + return f, nil +} + +func (m *MemMapFs) lockfreeOpen(name string) (*mem.FileData, error) { + name = normalizePath(name) + f, ok := m.getData()[name] + if ok { + return f, nil + } else { + return nil, ErrFileNotFound + } +} + +func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + chmod := false + file, err := m.openWrite(name) + if os.IsNotExist(err) && (flag&os.O_CREATE > 0) { + file, err = m.Create(name) + chmod = true + } + if err != nil { + return nil, err + } + if flag == os.O_RDONLY { + file = mem.NewReadOnlyFileHandle(file.(*mem.File).Data()) + } + if flag&os.O_APPEND > 0 { + _, err = file.Seek(0, os.SEEK_END) + if err != nil { + file.Close() + return nil, err + } + } + if flag&os.O_TRUNC > 0 && flag&(os.O_RDWR|os.O_WRONLY) > 0 { + err = file.Truncate(0) + if err != nil { + file.Close() + return nil, err + } + } + if chmod { + m.Chmod(name, perm) + } + return file, nil +} + +func (m *MemMapFs) Remove(name string) error { + name = normalizePath(name) + + m.mu.Lock() + defer m.mu.Unlock() + + if _, ok := m.getData()[name]; ok { + err := m.unRegisterWithParent(name) + if err != nil { + return &os.PathError{Op: "remove", Path: name, Err: err} + } + delete(m.getData(), name) + } else { + return &os.PathError{Op: "remove", Path: name, Err: os.ErrNotExist} + } + return nil +} + +func (m *MemMapFs) RemoveAll(path string) error { + path = normalizePath(path) + m.mu.Lock() + m.unRegisterWithParent(path) + m.mu.Unlock() + + m.mu.RLock() + defer m.mu.RUnlock() + + for p, _ := range m.getData() { + if strings.HasPrefix(p, path) { + m.mu.RUnlock() + m.mu.Lock() + delete(m.getData(), p) + m.mu.Unlock() + m.mu.RLock() + } + } + return nil +} + +func (m *MemMapFs) Rename(oldname, newname string) error { + oldname = normalizePath(oldname) + newname = normalizePath(newname) + + if oldname == newname { + return nil + } + + m.mu.RLock() + defer m.mu.RUnlock() + if _, ok := m.getData()[oldname]; ok { + m.mu.RUnlock() + m.mu.Lock() + m.unRegisterWithParent(oldname) + fileData := m.getData()[oldname] + delete(m.getData(), oldname) + mem.ChangeFileName(fileData, newname) + m.getData()[newname] = fileData + m.registerWithParent(fileData) + m.mu.Unlock() + m.mu.RLock() + } else { + return &os.PathError{Op: "rename", Path: oldname, Err: ErrFileNotFound} + } + return nil +} + +func (m *MemMapFs) Stat(name string) (os.FileInfo, error) { + f, err := m.Open(name) + if err != nil { + return nil, err + } + fi := mem.GetFileInfo(f.(*mem.File).Data()) + return fi, nil +} + +func (m *MemMapFs) Chmod(name string, mode os.FileMode) error { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return &os.PathError{Op: "chmod", Path: name, Err: ErrFileNotFound} + } + + m.mu.Lock() + mem.SetMode(f, mode) + m.mu.Unlock() + + return nil +} + +func (m *MemMapFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return &os.PathError{Op: "chtimes", Path: name, Err: ErrFileNotFound} + } + + m.mu.Lock() + mem.SetModTime(f, mtime) + m.mu.Unlock() + + return nil +} + +func (m *MemMapFs) List() { + for _, x := range m.data { + y := mem.FileInfo{FileData: x} + fmt.Println(x.Name(), y.Size()) + } +} + +// func debugMemMapList(fs Fs) { +// if x, ok := fs.(*MemMapFs); ok { +// x.List() +// } +// } diff --git a/vendor/github.com/spf13/afero/os.go b/vendor/github.com/spf13/afero/os.go new file mode 100644 index 0000000..13cc1b8 --- /dev/null +++ b/vendor/github.com/spf13/afero/os.go @@ -0,0 +1,101 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "os" + "time" +) + +var _ Lstater = (*OsFs)(nil) + +// OsFs is a Fs implementation that uses functions provided by the os package. +// +// For details in any method, check the documentation of the os package +// (http://golang.org/pkg/os/). +type OsFs struct{} + +func NewOsFs() Fs { + return &OsFs{} +} + +func (OsFs) Name() string { return "OsFs" } + +func (OsFs) Create(name string) (File, error) { + f, e := os.Create(name) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) Mkdir(name string, perm os.FileMode) error { + return os.Mkdir(name, perm) +} + +func (OsFs) MkdirAll(path string, perm os.FileMode) error { + return os.MkdirAll(path, perm) +} + +func (OsFs) Open(name string) (File, error) { + f, e := os.Open(name) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + f, e := os.OpenFile(name, flag, perm) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) Remove(name string) error { + return os.Remove(name) +} + +func (OsFs) RemoveAll(path string) error { + return os.RemoveAll(path) +} + +func (OsFs) Rename(oldname, newname string) error { + return os.Rename(oldname, newname) +} + +func (OsFs) Stat(name string) (os.FileInfo, error) { + return os.Stat(name) +} + +func (OsFs) Chmod(name string, mode os.FileMode) error { + return os.Chmod(name, mode) +} + +func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return os.Chtimes(name, atime, mtime) +} + +func (OsFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { + fi, err := os.Lstat(name) + return fi, true, err +} diff --git a/vendor/github.com/spf13/afero/path.go b/vendor/github.com/spf13/afero/path.go new file mode 100644 index 0000000..18f60a0 --- /dev/null +++ b/vendor/github.com/spf13/afero/path.go @@ -0,0 +1,106 @@ +// Copyright ©2015 The Go Authors +// Copyright ©2015 Steve Francia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "os" + "path/filepath" + "sort" +) + +// readDirNames reads the directory named by dirname and returns +// a sorted list of directory entries. +// adapted from https://golang.org/src/path/filepath/path.go +func readDirNames(fs Fs, dirname string) ([]string, error) { + f, err := fs.Open(dirname) + if err != nil { + return nil, err + } + names, err := f.Readdirnames(-1) + f.Close() + if err != nil { + return nil, err + } + sort.Strings(names) + return names, nil +} + +// walk recursively descends path, calling walkFn +// adapted from https://golang.org/src/path/filepath/path.go +func walk(fs Fs, path string, info os.FileInfo, walkFn filepath.WalkFunc) error { + err := walkFn(path, info, nil) + if err != nil { + if info.IsDir() && err == filepath.SkipDir { + return nil + } + return err + } + + if !info.IsDir() { + return nil + } + + names, err := readDirNames(fs, path) + if err != nil { + return walkFn(path, info, err) + } + + for _, name := range names { + filename := filepath.Join(path, name) + fileInfo, err := lstatIfPossible(fs, filename) + if err != nil { + if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { + return err + } + } else { + err = walk(fs, filename, fileInfo, walkFn) + if err != nil { + if !fileInfo.IsDir() || err != filepath.SkipDir { + return err + } + } + } + } + return nil +} + +// if the filesystem supports it, use Lstat, else use fs.Stat +func lstatIfPossible(fs Fs, path string) (os.FileInfo, error) { + if lfs, ok := fs.(Lstater); ok { + fi, _, err := lfs.LstatIfPossible(path) + return fi, err + } + return fs.Stat(path) +} + +// Walk walks the file tree rooted at root, calling walkFn for each file or +// directory in the tree, including root. All errors that arise visiting files +// and directories are filtered by walkFn. The files are walked in lexical +// order, which makes the output deterministic but means that for very +// large directories Walk can be inefficient. +// Walk does not follow symbolic links. + +func (a Afero) Walk(root string, walkFn filepath.WalkFunc) error { + return Walk(a.Fs, root, walkFn) +} + +func Walk(fs Fs, root string, walkFn filepath.WalkFunc) error { + info, err := lstatIfPossible(fs, root) + if err != nil { + return walkFn(root, nil, err) + } + return walk(fs, root, info, walkFn) +} diff --git a/vendor/github.com/spf13/afero/readonlyfs.go b/vendor/github.com/spf13/afero/readonlyfs.go new file mode 100644 index 0000000..c6376ec --- /dev/null +++ b/vendor/github.com/spf13/afero/readonlyfs.go @@ -0,0 +1,80 @@ +package afero + +import ( + "os" + "syscall" + "time" +) + +var _ Lstater = (*ReadOnlyFs)(nil) + +type ReadOnlyFs struct { + source Fs +} + +func NewReadOnlyFs(source Fs) Fs { + return &ReadOnlyFs{source: source} +} + +func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) { + return ReadDir(r.source, name) +} + +func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Name() string { + return "ReadOnlyFilter" +} + +func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) { + return r.source.Stat(name) +} + +func (r *ReadOnlyFs) LstatIfPossible(name string) (os.FileInfo, bool, error) { + if lsf, ok := r.source.(Lstater); ok { + return lsf.LstatIfPossible(name) + } + fi, err := r.Stat(name) + return fi, false, err +} + +func (r *ReadOnlyFs) Rename(o, n string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) RemoveAll(p string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Remove(n string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + return nil, syscall.EPERM + } + return r.source.OpenFile(name, flag, perm) +} + +func (r *ReadOnlyFs) Open(n string) (File, error) { + return r.source.Open(n) +} + +func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Create(n string) (File, error) { + return nil, syscall.EPERM +} diff --git a/vendor/github.com/spf13/afero/regexpfs.go b/vendor/github.com/spf13/afero/regexpfs.go new file mode 100644 index 0000000..9d92dbc --- /dev/null +++ b/vendor/github.com/spf13/afero/regexpfs.go @@ -0,0 +1,214 @@ +package afero + +import ( + "os" + "regexp" + "syscall" + "time" +) + +// The RegexpFs filters files (not directories) by regular expression. Only +// files matching the given regexp will be allowed, all others get a ENOENT error ( +// "No such file or directory"). +// +type RegexpFs struct { + re *regexp.Regexp + source Fs +} + +func NewRegexpFs(source Fs, re *regexp.Regexp) Fs { + return &RegexpFs{source: source, re: re} +} + +type RegexpFile struct { + f File + re *regexp.Regexp +} + +func (r *RegexpFs) matchesName(name string) error { + if r.re == nil { + return nil + } + if r.re.MatchString(name) { + return nil + } + return syscall.ENOENT +} + +func (r *RegexpFs) dirOrMatches(name string) error { + dir, err := IsDir(r.source, name) + if err != nil { + return err + } + if dir { + return nil + } + return r.matchesName(name) +} + +func (r *RegexpFs) Chtimes(name string, a, m time.Time) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Chtimes(name, a, m) +} + +func (r *RegexpFs) Chmod(name string, mode os.FileMode) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Chmod(name, mode) +} + +func (r *RegexpFs) Name() string { + return "RegexpFs" +} + +func (r *RegexpFs) Stat(name string) (os.FileInfo, error) { + if err := r.dirOrMatches(name); err != nil { + return nil, err + } + return r.source.Stat(name) +} + +func (r *RegexpFs) Rename(oldname, newname string) error { + dir, err := IsDir(r.source, oldname) + if err != nil { + return err + } + if dir { + return nil + } + if err := r.matchesName(oldname); err != nil { + return err + } + if err := r.matchesName(newname); err != nil { + return err + } + return r.source.Rename(oldname, newname) +} + +func (r *RegexpFs) RemoveAll(p string) error { + dir, err := IsDir(r.source, p) + if err != nil { + return err + } + if !dir { + if err := r.matchesName(p); err != nil { + return err + } + } + return r.source.RemoveAll(p) +} + +func (r *RegexpFs) Remove(name string) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Remove(name) +} + +func (r *RegexpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + if err := r.dirOrMatches(name); err != nil { + return nil, err + } + return r.source.OpenFile(name, flag, perm) +} + +func (r *RegexpFs) Open(name string) (File, error) { + dir, err := IsDir(r.source, name) + if err != nil { + return nil, err + } + if !dir { + if err := r.matchesName(name); err != nil { + return nil, err + } + } + f, err := r.source.Open(name) + return &RegexpFile{f: f, re: r.re}, nil +} + +func (r *RegexpFs) Mkdir(n string, p os.FileMode) error { + return r.source.Mkdir(n, p) +} + +func (r *RegexpFs) MkdirAll(n string, p os.FileMode) error { + return r.source.MkdirAll(n, p) +} + +func (r *RegexpFs) Create(name string) (File, error) { + if err := r.matchesName(name); err != nil { + return nil, err + } + return r.source.Create(name) +} + +func (f *RegexpFile) Close() error { + return f.f.Close() +} + +func (f *RegexpFile) Read(s []byte) (int, error) { + return f.f.Read(s) +} + +func (f *RegexpFile) ReadAt(s []byte, o int64) (int, error) { + return f.f.ReadAt(s, o) +} + +func (f *RegexpFile) Seek(o int64, w int) (int64, error) { + return f.f.Seek(o, w) +} + +func (f *RegexpFile) Write(s []byte) (int, error) { + return f.f.Write(s) +} + +func (f *RegexpFile) WriteAt(s []byte, o int64) (int, error) { + return f.f.WriteAt(s, o) +} + +func (f *RegexpFile) Name() string { + return f.f.Name() +} + +func (f *RegexpFile) Readdir(c int) (fi []os.FileInfo, err error) { + var rfi []os.FileInfo + rfi, err = f.f.Readdir(c) + if err != nil { + return nil, err + } + for _, i := range rfi { + if i.IsDir() || f.re.MatchString(i.Name()) { + fi = append(fi, i) + } + } + return fi, nil +} + +func (f *RegexpFile) Readdirnames(c int) (n []string, err error) { + fi, err := f.Readdir(c) + if err != nil { + return nil, err + } + for _, s := range fi { + n = append(n, s.Name()) + } + return n, nil +} + +func (f *RegexpFile) Stat() (os.FileInfo, error) { + return f.f.Stat() +} + +func (f *RegexpFile) Sync() error { + return f.f.Sync() +} + +func (f *RegexpFile) Truncate(s int64) error { + return f.f.Truncate(s) +} + +func (f *RegexpFile) WriteString(s string) (int, error) { + return f.f.WriteString(s) +} diff --git a/vendor/github.com/spf13/afero/unionFile.go b/vendor/github.com/spf13/afero/unionFile.go new file mode 100644 index 0000000..1e78f7d --- /dev/null +++ b/vendor/github.com/spf13/afero/unionFile.go @@ -0,0 +1,305 @@ +package afero + +import ( + "io" + "os" + "path/filepath" + "syscall" +) + +// The UnionFile implements the afero.File interface and will be returned +// when reading a directory present at least in the overlay or opening a file +// for writing. +// +// The calls to +// Readdir() and Readdirnames() merge the file os.FileInfo / names from the +// base and the overlay - for files present in both layers, only those +// from the overlay will be used. +// +// When opening files for writing (Create() / OpenFile() with the right flags) +// the operations will be done in both layers, starting with the overlay. A +// successful read in the overlay will move the cursor position in the base layer +// by the number of bytes read. +type UnionFile struct { + Base File + Layer File + Merger DirsMerger + off int + files []os.FileInfo +} + +func (f *UnionFile) Close() error { + // first close base, so we have a newer timestamp in the overlay. If we'd close + // the overlay first, we'd get a cacheStale the next time we access this file + // -> cache would be useless ;-) + if f.Base != nil { + f.Base.Close() + } + if f.Layer != nil { + return f.Layer.Close() + } + return BADFD +} + +func (f *UnionFile) Read(s []byte) (int, error) { + if f.Layer != nil { + n, err := f.Layer.Read(s) + if (err == nil || err == io.EOF) && f.Base != nil { + // advance the file position also in the base file, the next + // call may be a write at this position (or a seek with SEEK_CUR) + if _, seekErr := f.Base.Seek(int64(n), os.SEEK_CUR); seekErr != nil { + // only overwrite err in case the seek fails: we need to + // report an eventual io.EOF to the caller + err = seekErr + } + } + return n, err + } + if f.Base != nil { + return f.Base.Read(s) + } + return 0, BADFD +} + +func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) { + if f.Layer != nil { + n, err := f.Layer.ReadAt(s, o) + if (err == nil || err == io.EOF) && f.Base != nil { + _, err = f.Base.Seek(o+int64(n), os.SEEK_SET) + } + return n, err + } + if f.Base != nil { + return f.Base.ReadAt(s, o) + } + return 0, BADFD +} + +func (f *UnionFile) Seek(o int64, w int) (pos int64, err error) { + if f.Layer != nil { + pos, err = f.Layer.Seek(o, w) + if (err == nil || err == io.EOF) && f.Base != nil { + _, err = f.Base.Seek(o, w) + } + return pos, err + } + if f.Base != nil { + return f.Base.Seek(o, w) + } + return 0, BADFD +} + +func (f *UnionFile) Write(s []byte) (n int, err error) { + if f.Layer != nil { + n, err = f.Layer.Write(s) + if err == nil && f.Base != nil { // hmm, do we have fixed size files where a write may hit the EOF mark? + _, err = f.Base.Write(s) + } + return n, err + } + if f.Base != nil { + return f.Base.Write(s) + } + return 0, BADFD +} + +func (f *UnionFile) WriteAt(s []byte, o int64) (n int, err error) { + if f.Layer != nil { + n, err = f.Layer.WriteAt(s, o) + if err == nil && f.Base != nil { + _, err = f.Base.WriteAt(s, o) + } + return n, err + } + if f.Base != nil { + return f.Base.WriteAt(s, o) + } + return 0, BADFD +} + +func (f *UnionFile) Name() string { + if f.Layer != nil { + return f.Layer.Name() + } + return f.Base.Name() +} + +// DirsMerger is how UnionFile weaves two directories together. +// It takes the FileInfo slices from the layer and the base and returns a +// single view. +type DirsMerger func(lofi, bofi []os.FileInfo) ([]os.FileInfo, error) + +var defaultUnionMergeDirsFn = func(lofi, bofi []os.FileInfo) ([]os.FileInfo, error) { + var files = make(map[string]os.FileInfo) + + for _, fi := range lofi { + files[fi.Name()] = fi + } + + for _, fi := range bofi { + if _, exists := files[fi.Name()]; !exists { + files[fi.Name()] = fi + } + } + + rfi := make([]os.FileInfo, len(files)) + + i := 0 + for _, fi := range files { + rfi[i] = fi + i++ + } + + return rfi, nil + +} + +// Readdir will weave the two directories together and +// return a single view of the overlayed directories +func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) { + var merge DirsMerger = f.Merger + if merge == nil { + merge = defaultUnionMergeDirsFn + } + + if f.off == 0 { + var lfi []os.FileInfo + if f.Layer != nil { + lfi, err = f.Layer.Readdir(-1) + if err != nil { + return nil, err + } + } + + var bfi []os.FileInfo + if f.Base != nil { + bfi, err = f.Base.Readdir(-1) + if err != nil { + return nil, err + } + + } + merged, err := merge(lfi, bfi) + if err != nil { + return nil, err + } + f.files = append(f.files, merged...) + } + if c == -1 { + return f.files[f.off:], nil + } + defer func() { f.off += c }() + return f.files[f.off:c], nil +} + +func (f *UnionFile) Readdirnames(c int) ([]string, error) { + rfi, err := f.Readdir(c) + if err != nil { + return nil, err + } + var names []string + for _, fi := range rfi { + names = append(names, fi.Name()) + } + return names, nil +} + +func (f *UnionFile) Stat() (os.FileInfo, error) { + if f.Layer != nil { + return f.Layer.Stat() + } + if f.Base != nil { + return f.Base.Stat() + } + return nil, BADFD +} + +func (f *UnionFile) Sync() (err error) { + if f.Layer != nil { + err = f.Layer.Sync() + if err == nil && f.Base != nil { + err = f.Base.Sync() + } + return err + } + if f.Base != nil { + return f.Base.Sync() + } + return BADFD +} + +func (f *UnionFile) Truncate(s int64) (err error) { + if f.Layer != nil { + err = f.Layer.Truncate(s) + if err == nil && f.Base != nil { + err = f.Base.Truncate(s) + } + return err + } + if f.Base != nil { + return f.Base.Truncate(s) + } + return BADFD +} + +func (f *UnionFile) WriteString(s string) (n int, err error) { + if f.Layer != nil { + n, err = f.Layer.WriteString(s) + if err == nil && f.Base != nil { + _, err = f.Base.WriteString(s) + } + return n, err + } + if f.Base != nil { + return f.Base.WriteString(s) + } + return 0, BADFD +} + +func copyToLayer(base Fs, layer Fs, name string) error { + bfh, err := base.Open(name) + if err != nil { + return err + } + defer bfh.Close() + + // First make sure the directory exists + exists, err := Exists(layer, filepath.Dir(name)) + if err != nil { + return err + } + if !exists { + err = layer.MkdirAll(filepath.Dir(name), 0777) // FIXME? + if err != nil { + return err + } + } + + // Create the file on the overlay + lfh, err := layer.Create(name) + if err != nil { + return err + } + n, err := io.Copy(lfh, bfh) + if err != nil { + // If anything fails, clean up the file + layer.Remove(name) + lfh.Close() + return err + } + + bfi, err := bfh.Stat() + if err != nil || bfi.Size() != n { + layer.Remove(name) + lfh.Close() + return syscall.EIO + } + + err = lfh.Close() + if err != nil { + layer.Remove(name) + lfh.Close() + return err + } + return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime()) +} diff --git a/vendor/github.com/spf13/afero/util.go b/vendor/github.com/spf13/afero/util.go new file mode 100644 index 0000000..4f253f4 --- /dev/null +++ b/vendor/github.com/spf13/afero/util.go @@ -0,0 +1,330 @@ +// Copyright ©2015 Steve Francia +// Portions Copyright ©2015 The Hugo Authors +// Portions Copyright 2016-present Bjørn Erik Pedersen +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "strings" + "unicode" + + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" +) + +// Filepath separator defined by os.Separator. +const FilePathSeparator = string(filepath.Separator) + +// Takes a reader and a path and writes the content +func (a Afero) WriteReader(path string, r io.Reader) (err error) { + return WriteReader(a.Fs, path, r) +} + +func WriteReader(fs Fs, path string, r io.Reader) (err error) { + dir, _ := filepath.Split(path) + ospath := filepath.FromSlash(dir) + + if ospath != "" { + err = fs.MkdirAll(ospath, 0777) // rwx, rw, r + if err != nil { + if err != os.ErrExist { + return err + } + } + } + + file, err := fs.Create(path) + if err != nil { + return + } + defer file.Close() + + _, err = io.Copy(file, r) + return +} + +// Same as WriteReader but checks to see if file/directory already exists. +func (a Afero) SafeWriteReader(path string, r io.Reader) (err error) { + return SafeWriteReader(a.Fs, path, r) +} + +func SafeWriteReader(fs Fs, path string, r io.Reader) (err error) { + dir, _ := filepath.Split(path) + ospath := filepath.FromSlash(dir) + + if ospath != "" { + err = fs.MkdirAll(ospath, 0777) // rwx, rw, r + if err != nil { + return + } + } + + exists, err := Exists(fs, path) + if err != nil { + return + } + if exists { + return fmt.Errorf("%v already exists", path) + } + + file, err := fs.Create(path) + if err != nil { + return + } + defer file.Close() + + _, err = io.Copy(file, r) + return +} + +func (a Afero) GetTempDir(subPath string) string { + return GetTempDir(a.Fs, subPath) +} + +// GetTempDir returns the default temp directory with trailing slash +// if subPath is not empty then it will be created recursively with mode 777 rwx rwx rwx +func GetTempDir(fs Fs, subPath string) string { + addSlash := func(p string) string { + if FilePathSeparator != p[len(p)-1:] { + p = p + FilePathSeparator + } + return p + } + dir := addSlash(os.TempDir()) + + if subPath != "" { + // preserve windows backslash :-( + if FilePathSeparator == "\\" { + subPath = strings.Replace(subPath, "\\", "____", -1) + } + dir = dir + UnicodeSanitize((subPath)) + if FilePathSeparator == "\\" { + dir = strings.Replace(dir, "____", "\\", -1) + } + + if exists, _ := Exists(fs, dir); exists { + return addSlash(dir) + } + + err := fs.MkdirAll(dir, 0777) + if err != nil { + panic(err) + } + dir = addSlash(dir) + } + return dir +} + +// Rewrite string to remove non-standard path characters +func UnicodeSanitize(s string) string { + source := []rune(s) + target := make([]rune, 0, len(source)) + + for _, r := range source { + if unicode.IsLetter(r) || + unicode.IsDigit(r) || + unicode.IsMark(r) || + r == '.' || + r == '/' || + r == '\\' || + r == '_' || + r == '-' || + r == '%' || + r == ' ' || + r == '#' { + target = append(target, r) + } + } + + return string(target) +} + +// Transform characters with accents into plain forms. +func NeuterAccents(s string) string { + t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) + result, _, _ := transform.String(t, string(s)) + + return result +} + +func isMn(r rune) bool { + return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks +} + +func (a Afero) FileContainsBytes(filename string, subslice []byte) (bool, error) { + return FileContainsBytes(a.Fs, filename, subslice) +} + +// Check if a file contains a specified byte slice. +func FileContainsBytes(fs Fs, filename string, subslice []byte) (bool, error) { + f, err := fs.Open(filename) + if err != nil { + return false, err + } + defer f.Close() + + return readerContainsAny(f, subslice), nil +} + +func (a Afero) FileContainsAnyBytes(filename string, subslices [][]byte) (bool, error) { + return FileContainsAnyBytes(a.Fs, filename, subslices) +} + +// Check if a file contains any of the specified byte slices. +func FileContainsAnyBytes(fs Fs, filename string, subslices [][]byte) (bool, error) { + f, err := fs.Open(filename) + if err != nil { + return false, err + } + defer f.Close() + + return readerContainsAny(f, subslices...), nil +} + +// readerContains reports whether any of the subslices is within r. +func readerContainsAny(r io.Reader, subslices ...[]byte) bool { + + if r == nil || len(subslices) == 0 { + return false + } + + largestSlice := 0 + + for _, sl := range subslices { + if len(sl) > largestSlice { + largestSlice = len(sl) + } + } + + if largestSlice == 0 { + return false + } + + bufflen := largestSlice * 4 + halflen := bufflen / 2 + buff := make([]byte, bufflen) + var err error + var n, i int + + for { + i++ + if i == 1 { + n, err = io.ReadAtLeast(r, buff[:halflen], halflen) + } else { + if i != 2 { + // shift left to catch overlapping matches + copy(buff[:], buff[halflen:]) + } + n, err = io.ReadAtLeast(r, buff[halflen:], halflen) + } + + if n > 0 { + for _, sl := range subslices { + if bytes.Contains(buff, sl) { + return true + } + } + } + + if err != nil { + break + } + } + return false +} + +func (a Afero) DirExists(path string) (bool, error) { + return DirExists(a.Fs, path) +} + +// DirExists checks if a path exists and is a directory. +func DirExists(fs Fs, path string) (bool, error) { + fi, err := fs.Stat(path) + if err == nil && fi.IsDir() { + return true, nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +func (a Afero) IsDir(path string) (bool, error) { + return IsDir(a.Fs, path) +} + +// IsDir checks if a given path is a directory. +func IsDir(fs Fs, path string) (bool, error) { + fi, err := fs.Stat(path) + if err != nil { + return false, err + } + return fi.IsDir(), nil +} + +func (a Afero) IsEmpty(path string) (bool, error) { + return IsEmpty(a.Fs, path) +} + +// IsEmpty checks if a given file or directory is empty. +func IsEmpty(fs Fs, path string) (bool, error) { + if b, _ := Exists(fs, path); !b { + return false, fmt.Errorf("%q path does not exist", path) + } + fi, err := fs.Stat(path) + if err != nil { + return false, err + } + if fi.IsDir() { + f, err := fs.Open(path) + if err != nil { + return false, err + } + defer f.Close() + list, err := f.Readdir(-1) + return len(list) == 0, nil + } + return fi.Size() == 0, nil +} + +func (a Afero) Exists(path string) (bool, error) { + return Exists(a.Fs, path) +} + +// Check if a file or directory exists. +func Exists(fs Fs, path string) (bool, error) { + _, err := fs.Stat(path) + if err == nil { + return true, nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +func FullBaseFsPath(basePathFs *BasePathFs, relativePath string) string { + combinedPath := filepath.Join(basePathFs.path, relativePath) + if parent, ok := basePathFs.source.(*BasePathFs); ok { + return FullBaseFsPath(parent, combinedPath) + } + + return combinedPath +} diff --git a/vendor/github.com/spf13/cast/.gitignore b/vendor/github.com/spf13/cast/.gitignore new file mode 100644 index 0000000..53053a8 --- /dev/null +++ b/vendor/github.com/spf13/cast/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test + +*.bench diff --git a/vendor/github.com/spf13/cast/.travis.yml b/vendor/github.com/spf13/cast/.travis.yml new file mode 100644 index 0000000..6420d1c --- /dev/null +++ b/vendor/github.com/spf13/cast/.travis.yml @@ -0,0 +1,15 @@ +language: go +env: + - GO111MODULE=on +sudo: required +go: + - "1.11.x" + - tip +os: + - linux +matrix: + allow_failures: + - go: tip + fast_finish: true +script: + - make check diff --git a/vendor/github.com/spf13/cast/LICENSE b/vendor/github.com/spf13/cast/LICENSE new file mode 100644 index 0000000..4527efb --- /dev/null +++ b/vendor/github.com/spf13/cast/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Steve Francia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/spf13/cast/Makefile b/vendor/github.com/spf13/cast/Makefile new file mode 100644 index 0000000..7ccf893 --- /dev/null +++ b/vendor/github.com/spf13/cast/Makefile @@ -0,0 +1,38 @@ +# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html + +.PHONY: check fmt lint test test-race vet test-cover-html help +.DEFAULT_GOAL := help + +check: test-race fmt vet lint ## Run tests and linters + +test: ## Run tests + go test ./... + +test-race: ## Run tests with race detector + go test -race ./... + +fmt: ## Run gofmt linter + @for d in `go list` ; do \ + if [ "`gofmt -l -s $$GOPATH/src/$$d | tee /dev/stderr`" ]; then \ + echo "^ improperly formatted go files" && echo && exit 1; \ + fi \ + done + +lint: ## Run golint linter + @for d in `go list` ; do \ + if [ "`golint $$d | tee /dev/stderr`" ]; then \ + echo "^ golint errors!" && echo && exit 1; \ + fi \ + done + +vet: ## Run go vet linter + @if [ "`go vet | tee /dev/stderr`" ]; then \ + echo "^ go vet errors!" && echo && exit 1; \ + fi + +test-cover-html: ## Generate test coverage report + go test -coverprofile=coverage.out -covermode=count + go tool cover -func=coverage.out + +help: + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/vendor/github.com/spf13/cast/README.md b/vendor/github.com/spf13/cast/README.md new file mode 100644 index 0000000..e693939 --- /dev/null +++ b/vendor/github.com/spf13/cast/README.md @@ -0,0 +1,75 @@ +cast +==== +[![GoDoc](https://godoc.org/github.com/spf13/cast?status.svg)](https://godoc.org/github.com/spf13/cast) +[![Build Status](https://api.travis-ci.org/spf13/cast.svg?branch=master)](https://travis-ci.org/spf13/cast) +[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cast)](https://goreportcard.com/report/github.com/spf13/cast) + +Easy and safe casting from one type to another in Go + +Don’t Panic! ... Cast + +## What is Cast? + +Cast is a library to convert between different go types in a consistent and easy way. + +Cast provides simple functions to easily convert a number to a string, an +interface into a bool, etc. Cast does this intelligently when an obvious +conversion is possible. It doesn’t make any attempts to guess what you meant, +for example you can only convert a string to an int when it is a string +representation of an int such as “8”. Cast was developed for use in +[Hugo](http://hugo.spf13.com), a website engine which uses YAML, TOML or JSON +for meta data. + +## Why use Cast? + +When working with dynamic data in Go you often need to cast or convert the data +from one type into another. Cast goes beyond just using type assertion (though +it uses that when possible) to provide a very straightforward and convenient +library. + +If you are working with interfaces to handle things like dynamic content +you’ll need an easy way to convert an interface into a given type. This +is the library for you. + +If you are taking in data from YAML, TOML or JSON or other formats which lack +full types, then Cast is the library for you. + +## Usage + +Cast provides a handful of To_____ methods. These methods will always return +the desired type. **If input is provided that will not convert to that type, the +0 or nil value for that type will be returned**. + +Cast also provides identical methods To_____E. These return the same result as +the To_____ methods, plus an additional error which tells you if it successfully +converted. Using these methods you can tell the difference between when the +input matched the zero value or when the conversion failed and the zero value +was returned. + +The following examples are merely a sample of what is available. Please review +the code for a complete set. + +### Example ‘ToString’: + + cast.ToString("mayonegg") // "mayonegg" + cast.ToString(8) // "8" + cast.ToString(8.31) // "8.31" + cast.ToString([]byte("one time")) // "one time" + cast.ToString(nil) // "" + + var foo interface{} = "one more time" + cast.ToString(foo) // "one more time" + + +### Example ‘ToInt’: + + cast.ToInt(8) // 8 + cast.ToInt(8.31) // 8 + cast.ToInt("8") // 8 + cast.ToInt(true) // 1 + cast.ToInt(false) // 0 + + var eight interface{} = 8 + cast.ToInt(eight) // 8 + cast.ToInt(nil) // 0 + diff --git a/vendor/github.com/spf13/cast/cast.go b/vendor/github.com/spf13/cast/cast.go new file mode 100644 index 0000000..9fba638 --- /dev/null +++ b/vendor/github.com/spf13/cast/cast.go @@ -0,0 +1,171 @@ +// Copyright © 2014 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +// Package cast provides easy and safe casting in Go. +package cast + +import "time" + +// ToBool casts an interface to a bool type. +func ToBool(i interface{}) bool { + v, _ := ToBoolE(i) + return v +} + +// ToTime casts an interface to a time.Time type. +func ToTime(i interface{}) time.Time { + v, _ := ToTimeE(i) + return v +} + +// ToDuration casts an interface to a time.Duration type. +func ToDuration(i interface{}) time.Duration { + v, _ := ToDurationE(i) + return v +} + +// ToFloat64 casts an interface to a float64 type. +func ToFloat64(i interface{}) float64 { + v, _ := ToFloat64E(i) + return v +} + +// ToFloat32 casts an interface to a float32 type. +func ToFloat32(i interface{}) float32 { + v, _ := ToFloat32E(i) + return v +} + +// ToInt64 casts an interface to an int64 type. +func ToInt64(i interface{}) int64 { + v, _ := ToInt64E(i) + return v +} + +// ToInt32 casts an interface to an int32 type. +func ToInt32(i interface{}) int32 { + v, _ := ToInt32E(i) + return v +} + +// ToInt16 casts an interface to an int16 type. +func ToInt16(i interface{}) int16 { + v, _ := ToInt16E(i) + return v +} + +// ToInt8 casts an interface to an int8 type. +func ToInt8(i interface{}) int8 { + v, _ := ToInt8E(i) + return v +} + +// ToInt casts an interface to an int type. +func ToInt(i interface{}) int { + v, _ := ToIntE(i) + return v +} + +// ToUint casts an interface to a uint type. +func ToUint(i interface{}) uint { + v, _ := ToUintE(i) + return v +} + +// ToUint64 casts an interface to a uint64 type. +func ToUint64(i interface{}) uint64 { + v, _ := ToUint64E(i) + return v +} + +// ToUint32 casts an interface to a uint32 type. +func ToUint32(i interface{}) uint32 { + v, _ := ToUint32E(i) + return v +} + +// ToUint16 casts an interface to a uint16 type. +func ToUint16(i interface{}) uint16 { + v, _ := ToUint16E(i) + return v +} + +// ToUint8 casts an interface to a uint8 type. +func ToUint8(i interface{}) uint8 { + v, _ := ToUint8E(i) + return v +} + +// ToString casts an interface to a string type. +func ToString(i interface{}) string { + v, _ := ToStringE(i) + return v +} + +// ToStringMapString casts an interface to a map[string]string type. +func ToStringMapString(i interface{}) map[string]string { + v, _ := ToStringMapStringE(i) + return v +} + +// ToStringMapStringSlice casts an interface to a map[string][]string type. +func ToStringMapStringSlice(i interface{}) map[string][]string { + v, _ := ToStringMapStringSliceE(i) + return v +} + +// ToStringMapBool casts an interface to a map[string]bool type. +func ToStringMapBool(i interface{}) map[string]bool { + v, _ := ToStringMapBoolE(i) + return v +} + +// ToStringMapInt casts an interface to a map[string]int type. +func ToStringMapInt(i interface{}) map[string]int { + v, _ := ToStringMapIntE(i) + return v +} + +// ToStringMapInt64 casts an interface to a map[string]int64 type. +func ToStringMapInt64(i interface{}) map[string]int64 { + v, _ := ToStringMapInt64E(i) + return v +} + +// ToStringMap casts an interface to a map[string]interface{} type. +func ToStringMap(i interface{}) map[string]interface{} { + v, _ := ToStringMapE(i) + return v +} + +// ToSlice casts an interface to a []interface{} type. +func ToSlice(i interface{}) []interface{} { + v, _ := ToSliceE(i) + return v +} + +// ToBoolSlice casts an interface to a []bool type. +func ToBoolSlice(i interface{}) []bool { + v, _ := ToBoolSliceE(i) + return v +} + +// ToStringSlice casts an interface to a []string type. +func ToStringSlice(i interface{}) []string { + v, _ := ToStringSliceE(i) + return v +} + +// ToIntSlice casts an interface to a []int type. +func ToIntSlice(i interface{}) []int { + v, _ := ToIntSliceE(i) + return v +} + +// ToDurationSlice casts an interface to a []time.Duration type. +func ToDurationSlice(i interface{}) []time.Duration { + v, _ := ToDurationSliceE(i) + return v +} diff --git a/vendor/github.com/spf13/cast/caste.go b/vendor/github.com/spf13/cast/caste.go new file mode 100644 index 0000000..a4859fb --- /dev/null +++ b/vendor/github.com/spf13/cast/caste.go @@ -0,0 +1,1249 @@ +// Copyright © 2014 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package cast + +import ( + "encoding/json" + "errors" + "fmt" + "html/template" + "reflect" + "strconv" + "strings" + "time" +) + +var errNegativeNotAllowed = errors.New("unable to cast negative value") + +// ToTimeE casts an interface to a time.Time type. +func ToTimeE(i interface{}) (tim time.Time, err error) { + i = indirect(i) + + switch v := i.(type) { + case time.Time: + return v, nil + case string: + return StringToDate(v) + case int: + return time.Unix(int64(v), 0), nil + case int64: + return time.Unix(v, 0), nil + case int32: + return time.Unix(int64(v), 0), nil + case uint: + return time.Unix(int64(v), 0), nil + case uint64: + return time.Unix(int64(v), 0), nil + case uint32: + return time.Unix(int64(v), 0), nil + default: + return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i) + } +} + +// ToDurationE casts an interface to a time.Duration type. +func ToDurationE(i interface{}) (d time.Duration, err error) { + i = indirect(i) + + switch s := i.(type) { + case time.Duration: + return s, nil + case int, int64, int32, int16, int8, uint, uint64, uint32, uint16, uint8: + d = time.Duration(ToInt64(s)) + return + case float32, float64: + d = time.Duration(ToFloat64(s)) + return + case string: + if strings.ContainsAny(s, "nsuµmh") { + d, err = time.ParseDuration(s) + } else { + d, err = time.ParseDuration(s + "ns") + } + return + default: + err = fmt.Errorf("unable to cast %#v of type %T to Duration", i, i) + return + } +} + +// ToBoolE casts an interface to a bool type. +func ToBoolE(i interface{}) (bool, error) { + i = indirect(i) + + switch b := i.(type) { + case bool: + return b, nil + case nil: + return false, nil + case int: + if i.(int) != 0 { + return true, nil + } + return false, nil + case string: + return strconv.ParseBool(i.(string)) + default: + return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i) + } +} + +// ToFloat64E casts an interface to a float64 type. +func ToFloat64E(i interface{}) (float64, error) { + i = indirect(i) + + switch s := i.(type) { + case float64: + return s, nil + case float32: + return float64(s), nil + case int: + return float64(s), nil + case int64: + return float64(s), nil + case int32: + return float64(s), nil + case int16: + return float64(s), nil + case int8: + return float64(s), nil + case uint: + return float64(s), nil + case uint64: + return float64(s), nil + case uint32: + return float64(s), nil + case uint16: + return float64(s), nil + case uint8: + return float64(s), nil + case string: + v, err := strconv.ParseFloat(s, 64) + if err == nil { + return v, nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) + } +} + +// ToFloat32E casts an interface to a float32 type. +func ToFloat32E(i interface{}) (float32, error) { + i = indirect(i) + + switch s := i.(type) { + case float64: + return float32(s), nil + case float32: + return s, nil + case int: + return float32(s), nil + case int64: + return float32(s), nil + case int32: + return float32(s), nil + case int16: + return float32(s), nil + case int8: + return float32(s), nil + case uint: + return float32(s), nil + case uint64: + return float32(s), nil + case uint32: + return float32(s), nil + case uint16: + return float32(s), nil + case uint8: + return float32(s), nil + case string: + v, err := strconv.ParseFloat(s, 32) + if err == nil { + return float32(v), nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) + } +} + +// ToInt64E casts an interface to an int64 type. +func ToInt64E(i interface{}) (int64, error) { + i = indirect(i) + + switch s := i.(type) { + case int: + return int64(s), nil + case int64: + return s, nil + case int32: + return int64(s), nil + case int16: + return int64(s), nil + case int8: + return int64(s), nil + case uint: + return int64(s), nil + case uint64: + return int64(s), nil + case uint32: + return int64(s), nil + case uint16: + return int64(s), nil + case uint8: + return int64(s), nil + case float64: + return int64(s), nil + case float32: + return int64(s), nil + case string: + v, err := strconv.ParseInt(s, 0, 0) + if err == nil { + return v, nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) + } +} + +// ToInt32E casts an interface to an int32 type. +func ToInt32E(i interface{}) (int32, error) { + i = indirect(i) + + switch s := i.(type) { + case int: + return int32(s), nil + case int64: + return int32(s), nil + case int32: + return s, nil + case int16: + return int32(s), nil + case int8: + return int32(s), nil + case uint: + return int32(s), nil + case uint64: + return int32(s), nil + case uint32: + return int32(s), nil + case uint16: + return int32(s), nil + case uint8: + return int32(s), nil + case float64: + return int32(s), nil + case float32: + return int32(s), nil + case string: + v, err := strconv.ParseInt(s, 0, 0) + if err == nil { + return int32(v), nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) + } +} + +// ToInt16E casts an interface to an int16 type. +func ToInt16E(i interface{}) (int16, error) { + i = indirect(i) + + switch s := i.(type) { + case int: + return int16(s), nil + case int64: + return int16(s), nil + case int32: + return int16(s), nil + case int16: + return s, nil + case int8: + return int16(s), nil + case uint: + return int16(s), nil + case uint64: + return int16(s), nil + case uint32: + return int16(s), nil + case uint16: + return int16(s), nil + case uint8: + return int16(s), nil + case float64: + return int16(s), nil + case float32: + return int16(s), nil + case string: + v, err := strconv.ParseInt(s, 0, 0) + if err == nil { + return int16(v), nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) + } +} + +// ToInt8E casts an interface to an int8 type. +func ToInt8E(i interface{}) (int8, error) { + i = indirect(i) + + switch s := i.(type) { + case int: + return int8(s), nil + case int64: + return int8(s), nil + case int32: + return int8(s), nil + case int16: + return int8(s), nil + case int8: + return s, nil + case uint: + return int8(s), nil + case uint64: + return int8(s), nil + case uint32: + return int8(s), nil + case uint16: + return int8(s), nil + case uint8: + return int8(s), nil + case float64: + return int8(s), nil + case float32: + return int8(s), nil + case string: + v, err := strconv.ParseInt(s, 0, 0) + if err == nil { + return int8(v), nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) + } +} + +// ToIntE casts an interface to an int type. +func ToIntE(i interface{}) (int, error) { + i = indirect(i) + + switch s := i.(type) { + case int: + return s, nil + case int64: + return int(s), nil + case int32: + return int(s), nil + case int16: + return int(s), nil + case int8: + return int(s), nil + case uint: + return int(s), nil + case uint64: + return int(s), nil + case uint32: + return int(s), nil + case uint16: + return int(s), nil + case uint8: + return int(s), nil + case float64: + return int(s), nil + case float32: + return int(s), nil + case string: + v, err := strconv.ParseInt(s, 0, 0) + if err == nil { + return int(v), nil + } + return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i) + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i) + } +} + +// ToUintE casts an interface to a uint type. +func ToUintE(i interface{}) (uint, error) { + i = indirect(i) + + switch s := i.(type) { + case string: + v, err := strconv.ParseUint(s, 0, 0) + if err == nil { + return uint(v), nil + } + return 0, fmt.Errorf("unable to cast %#v to uint: %s", i, err) + case int: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case int64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case int32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case int16: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case int8: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case uint: + return s, nil + case uint64: + return uint(s), nil + case uint32: + return uint(s), nil + case uint16: + return uint(s), nil + case uint8: + return uint(s), nil + case float64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case float32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint(s), nil + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i) + } +} + +// ToUint64E casts an interface to a uint64 type. +func ToUint64E(i interface{}) (uint64, error) { + i = indirect(i) + + switch s := i.(type) { + case string: + v, err := strconv.ParseUint(s, 0, 64) + if err == nil { + return v, nil + } + return 0, fmt.Errorf("unable to cast %#v to uint64: %s", i, err) + case int: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case int64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case int32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case int16: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case int8: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case uint: + return uint64(s), nil + case uint64: + return s, nil + case uint32: + return uint64(s), nil + case uint16: + return uint64(s), nil + case uint8: + return uint64(s), nil + case float32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case float64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint64(s), nil + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i) + } +} + +// ToUint32E casts an interface to a uint32 type. +func ToUint32E(i interface{}) (uint32, error) { + i = indirect(i) + + switch s := i.(type) { + case string: + v, err := strconv.ParseUint(s, 0, 32) + if err == nil { + return uint32(v), nil + } + return 0, fmt.Errorf("unable to cast %#v to uint32: %s", i, err) + case int: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case int64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case int32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case int16: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case int8: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case uint: + return uint32(s), nil + case uint64: + return uint32(s), nil + case uint32: + return s, nil + case uint16: + return uint32(s), nil + case uint8: + return uint32(s), nil + case float64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case float32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint32(s), nil + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i) + } +} + +// ToUint16E casts an interface to a uint16 type. +func ToUint16E(i interface{}) (uint16, error) { + i = indirect(i) + + switch s := i.(type) { + case string: + v, err := strconv.ParseUint(s, 0, 16) + if err == nil { + return uint16(v), nil + } + return 0, fmt.Errorf("unable to cast %#v to uint16: %s", i, err) + case int: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case int64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case int32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case int16: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case int8: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case uint: + return uint16(s), nil + case uint64: + return uint16(s), nil + case uint32: + return uint16(s), nil + case uint16: + return s, nil + case uint8: + return uint16(s), nil + case float64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case float32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint16(s), nil + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i) + } +} + +// ToUint8E casts an interface to a uint type. +func ToUint8E(i interface{}) (uint8, error) { + i = indirect(i) + + switch s := i.(type) { + case string: + v, err := strconv.ParseUint(s, 0, 8) + if err == nil { + return uint8(v), nil + } + return 0, fmt.Errorf("unable to cast %#v to uint8: %s", i, err) + case int: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case int64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case int32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case int16: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case int8: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case uint: + return uint8(s), nil + case uint64: + return uint8(s), nil + case uint32: + return uint8(s), nil + case uint16: + return uint8(s), nil + case uint8: + return s, nil + case float64: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case float32: + if s < 0 { + return 0, errNegativeNotAllowed + } + return uint8(s), nil + case bool: + if s { + return 1, nil + } + return 0, nil + case nil: + return 0, nil + default: + return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i) + } +} + +// From html/template/content.go +// Copyright 2011 The Go Authors. All rights reserved. +// indirect returns the value, after dereferencing as many times +// as necessary to reach the base type (or nil). +func indirect(a interface{}) interface{} { + if a == nil { + return nil + } + if t := reflect.TypeOf(a); t.Kind() != reflect.Ptr { + // Avoid creating a reflect.Value if it's not a pointer. + return a + } + v := reflect.ValueOf(a) + for v.Kind() == reflect.Ptr && !v.IsNil() { + v = v.Elem() + } + return v.Interface() +} + +// From html/template/content.go +// Copyright 2011 The Go Authors. All rights reserved. +// indirectToStringerOrError returns the value, after dereferencing as many times +// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer +// or error, +func indirectToStringerOrError(a interface{}) interface{} { + if a == nil { + return nil + } + + var errorType = reflect.TypeOf((*error)(nil)).Elem() + var fmtStringerType = reflect.TypeOf((*fmt.Stringer)(nil)).Elem() + + v := reflect.ValueOf(a) + for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() { + v = v.Elem() + } + return v.Interface() +} + +// ToStringE casts an interface to a string type. +func ToStringE(i interface{}) (string, error) { + i = indirectToStringerOrError(i) + + switch s := i.(type) { + case string: + return s, nil + case bool: + return strconv.FormatBool(s), nil + case float64: + return strconv.FormatFloat(s, 'f', -1, 64), nil + case float32: + return strconv.FormatFloat(float64(s), 'f', -1, 32), nil + case int: + return strconv.Itoa(s), nil + case int64: + return strconv.FormatInt(s, 10), nil + case int32: + return strconv.Itoa(int(s)), nil + case int16: + return strconv.FormatInt(int64(s), 10), nil + case int8: + return strconv.FormatInt(int64(s), 10), nil + case uint: + return strconv.FormatInt(int64(s), 10), nil + case uint64: + return strconv.FormatInt(int64(s), 10), nil + case uint32: + return strconv.FormatInt(int64(s), 10), nil + case uint16: + return strconv.FormatInt(int64(s), 10), nil + case uint8: + return strconv.FormatInt(int64(s), 10), nil + case []byte: + return string(s), nil + case template.HTML: + return string(s), nil + case template.URL: + return string(s), nil + case template.JS: + return string(s), nil + case template.CSS: + return string(s), nil + case template.HTMLAttr: + return string(s), nil + case nil: + return "", nil + case fmt.Stringer: + return s.String(), nil + case error: + return s.Error(), nil + default: + return "", fmt.Errorf("unable to cast %#v of type %T to string", i, i) + } +} + +// ToStringMapStringE casts an interface to a map[string]string type. +func ToStringMapStringE(i interface{}) (map[string]string, error) { + var m = map[string]string{} + + switch v := i.(type) { + case map[string]string: + return v, nil + case map[string]interface{}: + for k, val := range v { + m[ToString(k)] = ToString(val) + } + return m, nil + case map[interface{}]string: + for k, val := range v { + m[ToString(k)] = ToString(val) + } + return m, nil + case map[interface{}]interface{}: + for k, val := range v { + m[ToString(k)] = ToString(val) + } + return m, nil + case string: + err := jsonStringToObject(v, &m) + return m, err + default: + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]string", i, i) + } +} + +// ToStringMapStringSliceE casts an interface to a map[string][]string type. +func ToStringMapStringSliceE(i interface{}) (map[string][]string, error) { + var m = map[string][]string{} + + switch v := i.(type) { + case map[string][]string: + return v, nil + case map[string][]interface{}: + for k, val := range v { + m[ToString(k)] = ToStringSlice(val) + } + return m, nil + case map[string]string: + for k, val := range v { + m[ToString(k)] = []string{val} + } + case map[string]interface{}: + for k, val := range v { + switch vt := val.(type) { + case []interface{}: + m[ToString(k)] = ToStringSlice(vt) + case []string: + m[ToString(k)] = vt + default: + m[ToString(k)] = []string{ToString(val)} + } + } + return m, nil + case map[interface{}][]string: + for k, val := range v { + m[ToString(k)] = ToStringSlice(val) + } + return m, nil + case map[interface{}]string: + for k, val := range v { + m[ToString(k)] = ToStringSlice(val) + } + return m, nil + case map[interface{}][]interface{}: + for k, val := range v { + m[ToString(k)] = ToStringSlice(val) + } + return m, nil + case map[interface{}]interface{}: + for k, val := range v { + key, err := ToStringE(k) + if err != nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) + } + value, err := ToStringSliceE(val) + if err != nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) + } + m[key] = value + } + case string: + err := jsonStringToObject(v, &m) + return m, err + default: + return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) + } + return m, nil +} + +// ToStringMapBoolE casts an interface to a map[string]bool type. +func ToStringMapBoolE(i interface{}) (map[string]bool, error) { + var m = map[string]bool{} + + switch v := i.(type) { + case map[interface{}]interface{}: + for k, val := range v { + m[ToString(k)] = ToBool(val) + } + return m, nil + case map[string]interface{}: + for k, val := range v { + m[ToString(k)] = ToBool(val) + } + return m, nil + case map[string]bool: + return v, nil + case string: + err := jsonStringToObject(v, &m) + return m, err + default: + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]bool", i, i) + } +} + +// ToStringMapE casts an interface to a map[string]interface{} type. +func ToStringMapE(i interface{}) (map[string]interface{}, error) { + var m = map[string]interface{}{} + + switch v := i.(type) { + case map[interface{}]interface{}: + for k, val := range v { + m[ToString(k)] = val + } + return m, nil + case map[string]interface{}: + return v, nil + case string: + err := jsonStringToObject(v, &m) + return m, err + default: + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]interface{}", i, i) + } +} + +// ToStringMapIntE casts an interface to a map[string]int{} type. +func ToStringMapIntE(i interface{}) (map[string]int, error) { + var m = map[string]int{} + if i == nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) + } + + switch v := i.(type) { + case map[interface{}]interface{}: + for k, val := range v { + m[ToString(k)] = ToInt(val) + } + return m, nil + case map[string]interface{}: + for k, val := range v { + m[k] = ToInt(val) + } + return m, nil + case map[string]int: + return v, nil + case string: + err := jsonStringToObject(v, &m) + return m, err + } + + if reflect.TypeOf(i).Kind() != reflect.Map { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) + } + + mVal := reflect.ValueOf(m) + v := reflect.ValueOf(i) + for _, keyVal := range v.MapKeys() { + val, err := ToIntE(v.MapIndex(keyVal).Interface()) + if err != nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) + } + mVal.SetMapIndex(keyVal, reflect.ValueOf(val)) + } + return m, nil +} + +// ToStringMapInt64E casts an interface to a map[string]int64{} type. +func ToStringMapInt64E(i interface{}) (map[string]int64, error) { + var m = map[string]int64{} + if i == nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) + } + + switch v := i.(type) { + case map[interface{}]interface{}: + for k, val := range v { + m[ToString(k)] = ToInt64(val) + } + return m, nil + case map[string]interface{}: + for k, val := range v { + m[k] = ToInt64(val) + } + return m, nil + case map[string]int64: + return v, nil + case string: + err := jsonStringToObject(v, &m) + return m, err + } + + if reflect.TypeOf(i).Kind() != reflect.Map { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) + } + mVal := reflect.ValueOf(m) + v := reflect.ValueOf(i) + for _, keyVal := range v.MapKeys() { + val, err := ToInt64E(v.MapIndex(keyVal).Interface()) + if err != nil { + return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) + } + mVal.SetMapIndex(keyVal, reflect.ValueOf(val)) + } + return m, nil +} + +// ToSliceE casts an interface to a []interface{} type. +func ToSliceE(i interface{}) ([]interface{}, error) { + var s []interface{} + + switch v := i.(type) { + case []interface{}: + return append(s, v...), nil + case []map[string]interface{}: + for _, u := range v { + s = append(s, u) + } + return s, nil + default: + return s, fmt.Errorf("unable to cast %#v of type %T to []interface{}", i, i) + } +} + +// ToBoolSliceE casts an interface to a []bool type. +func ToBoolSliceE(i interface{}) ([]bool, error) { + if i == nil { + return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) + } + + switch v := i.(type) { + case []bool: + return v, nil + } + + kind := reflect.TypeOf(i).Kind() + switch kind { + case reflect.Slice, reflect.Array: + s := reflect.ValueOf(i) + a := make([]bool, s.Len()) + for j := 0; j < s.Len(); j++ { + val, err := ToBoolE(s.Index(j).Interface()) + if err != nil { + return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) + } + a[j] = val + } + return a, nil + default: + return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) + } +} + +// ToStringSliceE casts an interface to a []string type. +func ToStringSliceE(i interface{}) ([]string, error) { + var a []string + + switch v := i.(type) { + case []interface{}: + for _, u := range v { + a = append(a, ToString(u)) + } + return a, nil + case []string: + return v, nil + case string: + return strings.Fields(v), nil + case interface{}: + str, err := ToStringE(v) + if err != nil { + return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) + } + return []string{str}, nil + default: + return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) + } +} + +// ToIntSliceE casts an interface to a []int type. +func ToIntSliceE(i interface{}) ([]int, error) { + if i == nil { + return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) + } + + switch v := i.(type) { + case []int: + return v, nil + } + + kind := reflect.TypeOf(i).Kind() + switch kind { + case reflect.Slice, reflect.Array: + s := reflect.ValueOf(i) + a := make([]int, s.Len()) + for j := 0; j < s.Len(); j++ { + val, err := ToIntE(s.Index(j).Interface()) + if err != nil { + return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) + } + a[j] = val + } + return a, nil + default: + return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) + } +} + +// ToDurationSliceE casts an interface to a []time.Duration type. +func ToDurationSliceE(i interface{}) ([]time.Duration, error) { + if i == nil { + return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) + } + + switch v := i.(type) { + case []time.Duration: + return v, nil + } + + kind := reflect.TypeOf(i).Kind() + switch kind { + case reflect.Slice, reflect.Array: + s := reflect.ValueOf(i) + a := make([]time.Duration, s.Len()) + for j := 0; j < s.Len(); j++ { + val, err := ToDurationE(s.Index(j).Interface()) + if err != nil { + return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) + } + a[j] = val + } + return a, nil + default: + return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) + } +} + +// StringToDate attempts to parse a string into a time.Time type using a +// predefined list of formats. If no suitable format is found, an error is +// returned. +func StringToDate(s string) (time.Time, error) { + return parseDateWith(s, []string{ + time.RFC3339, + "2006-01-02T15:04:05", // iso8601 without timezone + time.RFC1123Z, + time.RFC1123, + time.RFC822Z, + time.RFC822, + time.RFC850, + time.ANSIC, + time.UnixDate, + time.RubyDate, + "2006-01-02 15:04:05.999999999 -0700 MST", // Time.String() + "2006-01-02", + "02 Jan 2006", + "2006-01-02T15:04:05-0700", // RFC3339 without timezone hh:mm colon + "2006-01-02 15:04:05 -07:00", + "2006-01-02 15:04:05 -0700", + "2006-01-02 15:04:05Z07:00", // RFC3339 without T + "2006-01-02 15:04:05Z0700", // RFC3339 without T or timezone hh:mm colon + "2006-01-02 15:04:05", + time.Kitchen, + time.Stamp, + time.StampMilli, + time.StampMicro, + time.StampNano, + }) +} + +func parseDateWith(s string, dates []string) (d time.Time, e error) { + for _, dateType := range dates { + if d, e = time.Parse(dateType, s); e == nil { + return + } + } + return d, fmt.Errorf("unable to parse date: %s", s) +} + +// jsonStringToObject attempts to unmarshall a string as JSON into +// the object passed as pointer. +func jsonStringToObject(s string, v interface{}) error { + data := []byte(s) + return json.Unmarshal(data, v) +} diff --git a/vendor/github.com/spf13/cast/go.mod b/vendor/github.com/spf13/cast/go.mod new file mode 100644 index 0000000..c1c0232 --- /dev/null +++ b/vendor/github.com/spf13/cast/go.mod @@ -0,0 +1,7 @@ +module github.com/spf13/cast + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 +) diff --git a/vendor/github.com/spf13/cast/go.sum b/vendor/github.com/spf13/cast/go.sum new file mode 100644 index 0000000..e03ee77 --- /dev/null +++ b/vendor/github.com/spf13/cast/go.sum @@ -0,0 +1,6 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= diff --git a/vendor/github.com/spf13/jwalterweatherman/.gitignore b/vendor/github.com/spf13/jwalterweatherman/.gitignore new file mode 100644 index 0000000..0026861 --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/.gitignore @@ -0,0 +1,22 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe diff --git a/vendor/github.com/spf13/jwalterweatherman/LICENSE b/vendor/github.com/spf13/jwalterweatherman/LICENSE new file mode 100644 index 0000000..4527efb --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Steve Francia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/spf13/jwalterweatherman/README.md b/vendor/github.com/spf13/jwalterweatherman/README.md new file mode 100644 index 0000000..932a23f --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/README.md @@ -0,0 +1,148 @@ +jWalterWeatherman +================= + +Seamless printing to the terminal (stdout) and logging to a io.Writer +(file) that’s as easy to use as fmt.Println. + +![and_that__s_why_you_always_leave_a_note_by_jonnyetc-d57q7um](https://cloud.githubusercontent.com/assets/173412/11002937/ccd01654-847d-11e5-828e-12ebaf582eaf.jpg) +Graphic by [JonnyEtc](http://jonnyetc.deviantart.com/art/And-That-s-Why-You-Always-Leave-a-Note-315311422) + +JWW is primarily a wrapper around the excellent standard log library. It +provides a few advantages over using the standard log library alone. + +1. Ready to go out of the box. +2. One library for both printing to the terminal and logging (to files). +3. Really easy to log to either a temp file or a file you specify. + + +I really wanted a very straightforward library that could seamlessly do +the following things. + +1. Replace all the println, printf, etc statements thoughout my code with + something more useful +2. Allow the user to easily control what levels are printed to stdout +3. Allow the user to easily control what levels are logged +4. Provide an easy mechanism (like fmt.Println) to print info to the user + which can be easily logged as well +5. Due to 2 & 3 provide easy verbose mode for output and logs +6. Not have any unnecessary initialization cruft. Just use it. + +# Usage + +## Step 1. Use it +Put calls throughout your source based on type of feedback. +No initialization or setup needs to happen. Just start calling things. + +Available Loggers are: + + * TRACE + * DEBUG + * INFO + * WARN + * ERROR + * CRITICAL + * FATAL + +These each are loggers based on the log standard library and follow the +standard usage. Eg. + +```go + import ( + jww "github.com/spf13/jwalterweatherman" + ) + + ... + + if err != nil { + + // This is a pretty serious error and the user should know about + // it. It will be printed to the terminal as well as logged under the + // default thresholds. + + jww.ERROR.Println(err) + } + + if err2 != nil { + // This error isn’t going to materially change the behavior of the + // application, but it’s something that may not be what the user + // expects. Under the default thresholds, Warn will be logged, but + // not printed to the terminal. + + jww.WARN.Println(err2) + } + + // Information that’s relevant to what’s happening, but not very + // important for the user. Under the default thresholds this will be + // discarded. + + jww.INFO.Printf("information %q", response) + +``` + +NOTE: You can also use the library in a non-global setting by creating an instance of a Notebook: + +```go +notepad = jww.NewNotepad(jww.LevelInfo, jww.LevelTrace, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) +notepad.WARN.Println("Some warning"") +``` + +_Why 7 levels?_ + +Maybe you think that 7 levels are too much for any application... and you +are probably correct. Just because there are seven levels doesn’t mean +that you should be using all 7 levels. Pick the right set for your needs. +Remember they only have to mean something to your project. + +## Step 2. Optionally configure JWW + +Under the default thresholds : + + * Debug, Trace & Info goto /dev/null + * Warn and above is logged (when a log file/io.Writer is provided) + * Error and above is printed to the terminal (stdout) + +### Changing the thresholds + +The threshold can be changed at any time, but will only affect calls that +execute after the change was made. + +This is very useful if your application has a verbose mode. Of course you +can decide what verbose means to you or even have multiple levels of +verbosity. + + +```go + import ( + jww "github.com/spf13/jwalterweatherman" + ) + + if Verbose { + jww.SetLogThreshold(jww.LevelTrace) + jww.SetStdoutThreshold(jww.LevelInfo) + } +``` + +Note that JWW's own internal output uses log levels as well, so set the log +level before making any other calls if you want to see what it's up to. + + +### Setting a log file + +JWW can log to any `io.Writer`: + + +```go + + jww.SetLogOutput(customWriter) + +``` + + +# More information + +This is an early release. I’ve been using it for a while and this is the +third interface I’ve tried. I like this one pretty well, but no guarantees +that it won’t change a bit. + +I wrote this for use in [hugo](https://gohugo.io). If you are looking +for a static website engine that’s super fast please checkout Hugo. diff --git a/vendor/github.com/spf13/jwalterweatherman/default_notepad.go b/vendor/github.com/spf13/jwalterweatherman/default_notepad.go new file mode 100644 index 0000000..bcb7634 --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/default_notepad.go @@ -0,0 +1,113 @@ +// Copyright © 2016 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package jwalterweatherman + +import ( + "io" + "io/ioutil" + "log" + "os" +) + +var ( + TRACE *log.Logger + DEBUG *log.Logger + INFO *log.Logger + WARN *log.Logger + ERROR *log.Logger + CRITICAL *log.Logger + FATAL *log.Logger + + LOG *log.Logger + FEEDBACK *Feedback + + defaultNotepad *Notepad +) + +func reloadDefaultNotepad() { + TRACE = defaultNotepad.TRACE + DEBUG = defaultNotepad.DEBUG + INFO = defaultNotepad.INFO + WARN = defaultNotepad.WARN + ERROR = defaultNotepad.ERROR + CRITICAL = defaultNotepad.CRITICAL + FATAL = defaultNotepad.FATAL + + LOG = defaultNotepad.LOG + FEEDBACK = defaultNotepad.FEEDBACK +} + +func init() { + defaultNotepad = NewNotepad(LevelError, LevelWarn, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) + reloadDefaultNotepad() +} + +// SetLogThreshold set the log threshold for the default notepad. Trace by default. +func SetLogThreshold(threshold Threshold) { + defaultNotepad.SetLogThreshold(threshold) + reloadDefaultNotepad() +} + +// SetLogOutput set the log output for the default notepad. Discarded by default. +func SetLogOutput(handle io.Writer) { + defaultNotepad.SetLogOutput(handle) + reloadDefaultNotepad() +} + +// SetStdoutThreshold set the standard output threshold for the default notepad. +// Info by default. +func SetStdoutThreshold(threshold Threshold) { + defaultNotepad.SetStdoutThreshold(threshold) + reloadDefaultNotepad() +} + +// SetPrefix set the prefix for the default logger. Empty by default. +func SetPrefix(prefix string) { + defaultNotepad.SetPrefix(prefix) + reloadDefaultNotepad() +} + +// SetFlags set the flags for the default logger. "log.Ldate | log.Ltime" by default. +func SetFlags(flags int) { + defaultNotepad.SetFlags(flags) + reloadDefaultNotepad() +} + +// Level returns the current global log threshold. +func LogThreshold() Threshold { + return defaultNotepad.logThreshold +} + +// Level returns the current global output threshold. +func StdoutThreshold() Threshold { + return defaultNotepad.stdoutThreshold +} + +// GetStdoutThreshold returns the defined Treshold for the log logger. +func GetLogThreshold() Threshold { + return defaultNotepad.GetLogThreshold() +} + +// GetStdoutThreshold returns the Treshold for the stdout logger. +func GetStdoutThreshold() Threshold { + return defaultNotepad.GetStdoutThreshold() +} + +// LogCountForLevel returns the number of log invocations for a given threshold. +func LogCountForLevel(l Threshold) uint64 { + return defaultNotepad.LogCountForLevel(l) +} + +// LogCountForLevelsGreaterThanorEqualTo returns the number of log invocations +// greater than or equal to a given threshold. +func LogCountForLevelsGreaterThanorEqualTo(threshold Threshold) uint64 { + return defaultNotepad.LogCountForLevelsGreaterThanorEqualTo(threshold) +} + +// ResetLogCounters resets the invocation counters for all levels. +func ResetLogCounters() { + defaultNotepad.ResetLogCounters() +} diff --git a/vendor/github.com/spf13/jwalterweatherman/go.mod b/vendor/github.com/spf13/jwalterweatherman/go.mod new file mode 100644 index 0000000..bce549c --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/go.mod @@ -0,0 +1 @@ +module github.com/spf13/jwalterweatherman diff --git a/vendor/github.com/spf13/jwalterweatherman/log_counter.go b/vendor/github.com/spf13/jwalterweatherman/log_counter.go new file mode 100644 index 0000000..11423ac --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/log_counter.go @@ -0,0 +1,55 @@ +// Copyright © 2016 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package jwalterweatherman + +import ( + "sync/atomic" +) + +type logCounter struct { + counter uint64 +} + +func (c *logCounter) incr() { + atomic.AddUint64(&c.counter, 1) +} + +func (c *logCounter) resetCounter() { + atomic.StoreUint64(&c.counter, 0) +} + +func (c *logCounter) getCount() uint64 { + return atomic.LoadUint64(&c.counter) +} + +func (c *logCounter) Write(p []byte) (n int, err error) { + c.incr() + return len(p), nil +} + +// LogCountForLevel returns the number of log invocations for a given threshold. +func (n *Notepad) LogCountForLevel(l Threshold) uint64 { + return n.logCounters[l].getCount() +} + +// LogCountForLevelsGreaterThanorEqualTo returns the number of log invocations +// greater than or equal to a given threshold. +func (n *Notepad) LogCountForLevelsGreaterThanorEqualTo(threshold Threshold) uint64 { + var cnt uint64 + + for i := int(threshold); i < len(n.logCounters); i++ { + cnt += n.LogCountForLevel(Threshold(i)) + } + + return cnt +} + +// ResetLogCounters resets the invocation counters for all levels. +func (n *Notepad) ResetLogCounters() { + for _, np := range n.logCounters { + np.resetCounter() + } +} diff --git a/vendor/github.com/spf13/jwalterweatherman/notepad.go b/vendor/github.com/spf13/jwalterweatherman/notepad.go new file mode 100644 index 0000000..ae5aaf7 --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/notepad.go @@ -0,0 +1,194 @@ +// Copyright © 2016 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package jwalterweatherman + +import ( + "fmt" + "io" + "log" +) + +type Threshold int + +func (t Threshold) String() string { + return prefixes[t] +} + +const ( + LevelTrace Threshold = iota + LevelDebug + LevelInfo + LevelWarn + LevelError + LevelCritical + LevelFatal +) + +var prefixes map[Threshold]string = map[Threshold]string{ + LevelTrace: "TRACE", + LevelDebug: "DEBUG", + LevelInfo: "INFO", + LevelWarn: "WARN", + LevelError: "ERROR", + LevelCritical: "CRITICAL", + LevelFatal: "FATAL", +} + +// Notepad is where you leave a note! +type Notepad struct { + TRACE *log.Logger + DEBUG *log.Logger + INFO *log.Logger + WARN *log.Logger + ERROR *log.Logger + CRITICAL *log.Logger + FATAL *log.Logger + + LOG *log.Logger + FEEDBACK *Feedback + + loggers [7]**log.Logger + logHandle io.Writer + outHandle io.Writer + logThreshold Threshold + stdoutThreshold Threshold + prefix string + flags int + + // One per Threshold + logCounters [7]*logCounter +} + +// NewNotepad create a new notepad. +func NewNotepad(outThreshold Threshold, logThreshold Threshold, outHandle, logHandle io.Writer, prefix string, flags int) *Notepad { + n := &Notepad{} + + n.loggers = [7]**log.Logger{&n.TRACE, &n.DEBUG, &n.INFO, &n.WARN, &n.ERROR, &n.CRITICAL, &n.FATAL} + n.outHandle = outHandle + n.logHandle = logHandle + n.stdoutThreshold = outThreshold + n.logThreshold = logThreshold + + if len(prefix) != 0 { + n.prefix = "[" + prefix + "] " + } else { + n.prefix = "" + } + + n.flags = flags + + n.LOG = log.New(n.logHandle, + "LOG: ", + n.flags) + n.FEEDBACK = &Feedback{out: log.New(outHandle, "", 0), log: n.LOG} + + n.init() + return n +} + +// init creates the loggers for each level depending on the notepad thresholds. +func (n *Notepad) init() { + logAndOut := io.MultiWriter(n.outHandle, n.logHandle) + + for t, logger := range n.loggers { + threshold := Threshold(t) + counter := &logCounter{} + n.logCounters[t] = counter + prefix := n.prefix + threshold.String() + " " + + switch { + case threshold >= n.logThreshold && threshold >= n.stdoutThreshold: + *logger = log.New(io.MultiWriter(counter, logAndOut), prefix, n.flags) + + case threshold >= n.logThreshold: + *logger = log.New(io.MultiWriter(counter, n.logHandle), prefix, n.flags) + + case threshold >= n.stdoutThreshold: + *logger = log.New(io.MultiWriter(counter, n.outHandle), prefix, n.flags) + + default: + // counter doesn't care about prefix and flags, so don't use them + // for performance. + *logger = log.New(counter, "", 0) + } + } +} + +// SetLogThreshold changes the threshold above which messages are written to the +// log file. +func (n *Notepad) SetLogThreshold(threshold Threshold) { + n.logThreshold = threshold + n.init() +} + +// SetLogOutput changes the file where log messages are written. +func (n *Notepad) SetLogOutput(handle io.Writer) { + n.logHandle = handle + n.init() +} + +// GetStdoutThreshold returns the defined Treshold for the log logger. +func (n *Notepad) GetLogThreshold() Threshold { + return n.logThreshold +} + +// SetStdoutThreshold changes the threshold above which messages are written to the +// standard output. +func (n *Notepad) SetStdoutThreshold(threshold Threshold) { + n.stdoutThreshold = threshold + n.init() +} + +// GetStdoutThreshold returns the Treshold for the stdout logger. +func (n *Notepad) GetStdoutThreshold() Threshold { + return n.stdoutThreshold +} + +// SetPrefix changes the prefix used by the notepad. Prefixes are displayed between +// brackets at the beginning of the line. An empty prefix won't be displayed at all. +func (n *Notepad) SetPrefix(prefix string) { + if len(prefix) != 0 { + n.prefix = "[" + prefix + "] " + } else { + n.prefix = "" + } + n.init() +} + +// SetFlags choose which flags the logger will display (after prefix and message +// level). See the package log for more informations on this. +func (n *Notepad) SetFlags(flags int) { + n.flags = flags + n.init() +} + +// Feedback writes plainly to the outHandle while +// logging with the standard extra information (date, file, etc). +type Feedback struct { + out *log.Logger + log *log.Logger +} + +func (fb *Feedback) Println(v ...interface{}) { + fb.output(fmt.Sprintln(v...)) +} + +func (fb *Feedback) Printf(format string, v ...interface{}) { + fb.output(fmt.Sprintf(format, v...)) +} + +func (fb *Feedback) Print(v ...interface{}) { + fb.output(fmt.Sprint(v...)) +} + +func (fb *Feedback) output(s string) { + if fb.out != nil { + fb.out.Output(2, s) + } + if fb.log != nil { + fb.log.Output(2, s) + } +} diff --git a/vendor/github.com/spf13/pflag/.gitignore b/vendor/github.com/spf13/pflag/.gitignore new file mode 100644 index 0000000..c3da290 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.gitignore @@ -0,0 +1,2 @@ +.idea/* + diff --git a/vendor/github.com/spf13/pflag/.travis.yml b/vendor/github.com/spf13/pflag/.travis.yml new file mode 100644 index 0000000..f8a63b3 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.travis.yml @@ -0,0 +1,21 @@ +sudo: false + +language: go + +go: + - 1.7.3 + - 1.8.1 + - tip + +matrix: + allow_failures: + - go: tip + +install: + - go get github.com/golang/lint/golint + - export PATH=$GOPATH/bin:$PATH + - go install ./... + +script: + - verify/all.sh -v + - go test ./... diff --git a/vendor/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE new file mode 100644 index 0000000..63ed1cf --- /dev/null +++ b/vendor/github.com/spf13/pflag/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 Alex Ogier. All rights reserved. +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md new file mode 100644 index 0000000..b052414 --- /dev/null +++ b/vendor/github.com/spf13/pflag/README.md @@ -0,0 +1,296 @@ +[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag) +[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag) +[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag) + +## Description + +pflag is a drop-in replacement for Go's flag package, implementing +POSIX/GNU-style --flags. + +pflag is compatible with the [GNU extensions to the POSIX recommendations +for command-line options][1]. For a more precise description, see the +"Command-line flag syntax" section below. + +[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html + +pflag is available under the same style of BSD license as the Go language, +which can be found in the LICENSE file. + +## Installation + +pflag is available using the standard `go get` command. + +Install by running: + + go get github.com/spf13/pflag + +Run tests by running: + + go test github.com/spf13/pflag + +## Usage + +pflag is a drop-in replacement of Go's native flag package. If you import +pflag under the name "flag" then all code should continue to function +with no changes. + +``` go +import flag "github.com/spf13/pflag" +``` + +There is one exception to this: if you directly instantiate the Flag struct +there is one more field "Shorthand" that you will need to set. +Most code never instantiates this struct directly, and instead uses +functions such as String(), BoolVar(), and Var(), and is therefore +unaffected. + +Define flags using flag.String(), Bool(), Int(), etc. + +This declares an integer flag, -flagname, stored in the pointer ip, with type *int. + +``` go +var ip *int = flag.Int("flagname", 1234, "help message for flagname") +``` + +If you like, you can bind the flag to a variable using the Var() functions. + +``` go +var flagvar int +func init() { + flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") +} +``` + +Or you can create custom flags that satisfy the Value interface (with +pointer receivers) and couple them to flag parsing by + +``` go +flag.Var(&flagVal, "name", "help message for flagname") +``` + +For such flags, the default value is just the initial value of the variable. + +After all flags are defined, call + +``` go +flag.Parse() +``` + +to parse the command line into the defined flags. + +Flags may then be used directly. If you're using the flags themselves, +they are all pointers; if you bind to variables, they're values. + +``` go +fmt.Println("ip has value ", *ip) +fmt.Println("flagvar has value ", flagvar) +``` + +There are helpers function to get values later if you have the FlagSet but +it was difficult to keep up with all of the flag pointers in your code. +If you have a pflag.FlagSet with a flag called 'flagname' of type int you +can use GetInt() to get the int value. But notice that 'flagname' must exist +and it must be an int. GetString("flagname") will fail. + +``` go +i, err := flagset.GetInt("flagname") +``` + +After parsing, the arguments after the flag are available as the +slice flag.Args() or individually as flag.Arg(i). +The arguments are indexed from 0 through flag.NArg()-1. + +The pflag package also defines some new functions that are not in flag, +that give one-letter shorthands for flags. You can use these by appending +'P' to the name of any function that defines a flag. + +``` go +var ip = flag.IntP("flagname", "f", 1234, "help message") +var flagvar bool +func init() { + flag.BoolVarP(&flagvar, "boolname", "b", true, "help message") +} +flag.VarP(&flagVal, "varname", "v", "help message") +``` + +Shorthand letters can be used with single dashes on the command line. +Boolean shorthand flags can be combined with other shorthand flags. + +The default set of command-line flags is controlled by +top-level functions. The FlagSet type allows one to define +independent sets of flags, such as to implement subcommands +in a command-line interface. The methods of FlagSet are +analogous to the top-level functions for the command-line +flag set. + +## Setting no option default values for flags + +After you create a flag it is possible to set the pflag.NoOptDefVal for +the given flag. Doing this changes the meaning of the flag slightly. If +a flag has a NoOptDefVal and the flag is set on the command line without +an option the flag will be set to the NoOptDefVal. For example given: + +``` go +var ip = flag.IntP("flagname", "f", 1234, "help message") +flag.Lookup("flagname").NoOptDefVal = "4321" +``` + +Would result in something like + +| Parsed Arguments | Resulting Value | +| ------------- | ------------- | +| --flagname=1357 | ip=1357 | +| --flagname | ip=4321 | +| [nothing] | ip=1234 | + +## Command line flag syntax + +``` +--flag // boolean flags, or flags with no option default values +--flag x // only on flags without a default value +--flag=x +``` + +Unlike the flag package, a single dash before an option means something +different than a double dash. Single dashes signify a series of shorthand +letters for flags. All but the last shorthand letter must be boolean flags +or a flag with a default value + +``` +// boolean or flags where the 'no option default value' is set +-f +-f=true +-abc +but +-b true is INVALID + +// non-boolean and flags without a 'no option default value' +-n 1234 +-n=1234 +-n1234 + +// mixed +-abcs "hello" +-absd="hello" +-abcs1234 +``` + +Flag parsing stops after the terminator "--". Unlike the flag package, +flags can be interspersed with arguments anywhere on the command line +before this terminator. + +Integer flags accept 1234, 0664, 0x1234 and may be negative. +Boolean flags (in their long form) accept 1, 0, t, f, true, false, +TRUE, FALSE, True, False. +Duration flags accept any input valid for time.ParseDuration. + +## Mutating or "Normalizing" Flag names + +It is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow. + +**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag + +``` go +func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { + from := []string{"-", "_"} + to := "." + for _, sep := range from { + name = strings.Replace(name, sep, to, -1) + } + return pflag.NormalizedName(name) +} + +myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc) +``` + +**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name + +``` go +func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { + switch name { + case "old-flag-name": + name = "new-flag-name" + break + } + return pflag.NormalizedName(name) +} + +myFlagSet.SetNormalizeFunc(aliasNormalizeFunc) +``` + +## Deprecating a flag or its shorthand +It is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used. + +**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead. +```go +// deprecate a flag by specifying its name and a usage message +flags.MarkDeprecated("badflag", "please use --good-flag instead") +``` +This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used. + +**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n". +```go +// deprecate a flag shorthand by specifying its flag name and a usage message +flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only") +``` +This hides the shortname "n" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand "n" is used. + +Note that usage message is essential here, and it should not be empty. + +## Hidden flags +It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text. + +**Example**: You have a flag named "secretFlag" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available. +```go +// hide a flag by specifying its name +flags.MarkHidden("secretFlag") +``` + +## Disable sorting of flags +`pflag` allows you to disable sorting of flags for help and usage message. + +**Example**: +```go +flags.BoolP("verbose", "v", false, "verbose output") +flags.String("coolflag", "yeaah", "it's really cool flag") +flags.Int("usefulflag", 777, "sometimes it's very useful") +flags.SortFlags = false +flags.PrintDefaults() +``` +**Output**: +``` + -v, --verbose verbose output + --coolflag string it's really cool flag (default "yeaah") + --usefulflag int sometimes it's very useful (default 777) +``` + + +## Supporting Go flags when using pflag +In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary +to support flags defined by third-party dependencies (e.g. `golang/glog`). + +**Example**: You want to add the Go flags to the `CommandLine` flagset +```go +import ( + goflag "flag" + flag "github.com/spf13/pflag" +) + +var ip *int = flag.Int("flagname", 1234, "help message for flagname") + +func main() { + flag.CommandLine.AddGoFlagSet(goflag.CommandLine) + flag.Parse() +} +``` + +## More info + +You can see the full reference documentation of the pflag package +[at godoc.org][3], or through go's standard documentation system by +running `godoc -http=:6060` and browsing to +[http://localhost:6060/pkg/github.com/spf13/pflag][2] after +installation. + +[2]: http://localhost:6060/pkg/github.com/spf13/pflag +[3]: http://godoc.org/github.com/spf13/pflag diff --git a/vendor/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go new file mode 100644 index 0000000..c4c5c0b --- /dev/null +++ b/vendor/github.com/spf13/pflag/bool.go @@ -0,0 +1,94 @@ +package pflag + +import "strconv" + +// optional interface to indicate boolean flags that can be +// supplied without "=value" text +type boolFlag interface { + Value + IsBoolFlag() bool +} + +// -- bool Value +type boolValue bool + +func newBoolValue(val bool, p *bool) *boolValue { + *p = val + return (*boolValue)(p) +} + +func (b *boolValue) Set(s string) error { + v, err := strconv.ParseBool(s) + *b = boolValue(v) + return err +} + +func (b *boolValue) Type() string { + return "bool" +} + +func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) } + +func (b *boolValue) IsBoolFlag() bool { return true } + +func boolConv(sval string) (interface{}, error) { + return strconv.ParseBool(sval) +} + +// GetBool return the bool value of a flag with the given name +func (f *FlagSet) GetBool(name string) (bool, error) { + val, err := f.getFlagType(name, "bool", boolConv) + if err != nil { + return false, err + } + return val.(bool), nil +} + +// BoolVar defines a bool flag with specified name, default value, and usage string. +// The argument p points to a bool variable in which to store the value of the flag. +func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) { + f.BoolVarP(p, name, "", value, usage) +} + +// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) { + flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage) + flag.NoOptDefVal = "true" +} + +// BoolVar defines a bool flag with specified name, default value, and usage string. +// The argument p points to a bool variable in which to store the value of the flag. +func BoolVar(p *bool, name string, value bool, usage string) { + BoolVarP(p, name, "", value, usage) +} + +// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. +func BoolVarP(p *bool, name, shorthand string, value bool, usage string) { + flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage) + flag.NoOptDefVal = "true" +} + +// Bool defines a bool flag with specified name, default value, and usage string. +// The return value is the address of a bool variable that stores the value of the flag. +func (f *FlagSet) Bool(name string, value bool, usage string) *bool { + return f.BoolP(name, "", value, usage) +} + +// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool { + p := new(bool) + f.BoolVarP(p, name, shorthand, value, usage) + return p +} + +// Bool defines a bool flag with specified name, default value, and usage string. +// The return value is the address of a bool variable that stores the value of the flag. +func Bool(name string, value bool, usage string) *bool { + return BoolP(name, "", value, usage) +} + +// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. +func BoolP(name, shorthand string, value bool, usage string) *bool { + b := CommandLine.BoolP(name, shorthand, value, usage) + return b +} diff --git a/vendor/github.com/spf13/pflag/bool_slice.go b/vendor/github.com/spf13/pflag/bool_slice.go new file mode 100644 index 0000000..5af02f1 --- /dev/null +++ b/vendor/github.com/spf13/pflag/bool_slice.go @@ -0,0 +1,147 @@ +package pflag + +import ( + "io" + "strconv" + "strings" +) + +// -- boolSlice Value +type boolSliceValue struct { + value *[]bool + changed bool +} + +func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue { + bsv := new(boolSliceValue) + bsv.value = p + *bsv.value = val + return bsv +} + +// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag. +// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended. +func (s *boolSliceValue) Set(val string) error { + + // remove all quote characters + rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") + + // read flag arguments with CSV parser + boolStrSlice, err := readAsCSV(rmQuote.Replace(val)) + if err != nil && err != io.EOF { + return err + } + + // parse boolean values into slice + out := make([]bool, 0, len(boolStrSlice)) + for _, boolStr := range boolStrSlice { + b, err := strconv.ParseBool(strings.TrimSpace(boolStr)) + if err != nil { + return err + } + out = append(out, b) + } + + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + + s.changed = true + + return nil +} + +// Type returns a string that uniquely represents this flag's type. +func (s *boolSliceValue) Type() string { + return "boolSlice" +} + +// String defines a "native" format for this boolean slice flag value. +func (s *boolSliceValue) String() string { + + boolStrSlice := make([]string, len(*s.value)) + for i, b := range *s.value { + boolStrSlice[i] = strconv.FormatBool(b) + } + + out, _ := writeAsCSV(boolStrSlice) + + return "[" + out + "]" +} + +func boolSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []bool{}, nil + } + ss := strings.Split(val, ",") + out := make([]bool, len(ss)) + for i, t := range ss { + var err error + out[i], err = strconv.ParseBool(t) + if err != nil { + return nil, err + } + } + return out, nil +} + +// GetBoolSlice returns the []bool value of a flag with the given name. +func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) { + val, err := f.getFlagType(name, "boolSlice", boolSliceConv) + if err != nil { + return []bool{}, err + } + return val.([]bool), nil +} + +// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string. +// The argument p points to a []bool variable in which to store the value of the flag. +func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) { + f.VarP(newBoolSliceValue(value, p), name, "", usage) +} + +// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { + f.VarP(newBoolSliceValue(value, p), name, shorthand, usage) +} + +// BoolSliceVar defines a []bool flag with specified name, default value, and usage string. +// The argument p points to a []bool variable in which to store the value of the flag. +func BoolSliceVar(p *[]bool, name string, value []bool, usage string) { + CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage) +} + +// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. +func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { + CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage) +} + +// BoolSlice defines a []bool flag with specified name, default value, and usage string. +// The return value is the address of a []bool variable that stores the value of the flag. +func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool { + p := []bool{} + f.BoolSliceVarP(&p, name, "", value, usage) + return &p +} + +// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { + p := []bool{} + f.BoolSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// BoolSlice defines a []bool flag with specified name, default value, and usage string. +// The return value is the address of a []bool variable that stores the value of the flag. +func BoolSlice(name string, value []bool, usage string) *[]bool { + return CommandLine.BoolSliceP(name, "", value, usage) +} + +// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. +func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { + return CommandLine.BoolSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/bytes.go b/vendor/github.com/spf13/pflag/bytes.go new file mode 100644 index 0000000..67d5304 --- /dev/null +++ b/vendor/github.com/spf13/pflag/bytes.go @@ -0,0 +1,209 @@ +package pflag + +import ( + "encoding/base64" + "encoding/hex" + "fmt" + "strings" +) + +// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded +type bytesHexValue []byte + +// String implements pflag.Value.String. +func (bytesHex bytesHexValue) String() string { + return fmt.Sprintf("%X", []byte(bytesHex)) +} + +// Set implements pflag.Value.Set. +func (bytesHex *bytesHexValue) Set(value string) error { + bin, err := hex.DecodeString(strings.TrimSpace(value)) + + if err != nil { + return err + } + + *bytesHex = bin + + return nil +} + +// Type implements pflag.Value.Type. +func (*bytesHexValue) Type() string { + return "bytesHex" +} + +func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue { + *p = val + return (*bytesHexValue)(p) +} + +func bytesHexConv(sval string) (interface{}, error) { + + bin, err := hex.DecodeString(sval) + + if err == nil { + return bin, nil + } + + return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) +} + +// GetBytesHex return the []byte value of a flag with the given name +func (f *FlagSet) GetBytesHex(name string) ([]byte, error) { + val, err := f.getFlagType(name, "bytesHex", bytesHexConv) + + if err != nil { + return []byte{}, err + } + + return val.([]byte), nil +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + f.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHexVar defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func BytesHexVar(p *[]byte, name string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, "", usage) +} + +// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash. +func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) { + CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage) +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, "", value, usage) + return p +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesHexVarP(p, name, shorthand, value, usage) + return p +} + +// BytesHex defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func BytesHex(name string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, "", value, usage) +} + +// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash. +func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte { + return CommandLine.BytesHexP(name, shorthand, value, usage) +} + +// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded +type bytesBase64Value []byte + +// String implements pflag.Value.String. +func (bytesBase64 bytesBase64Value) String() string { + return base64.StdEncoding.EncodeToString([]byte(bytesBase64)) +} + +// Set implements pflag.Value.Set. +func (bytesBase64 *bytesBase64Value) Set(value string) error { + bin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value)) + + if err != nil { + return err + } + + *bytesBase64 = bin + + return nil +} + +// Type implements pflag.Value.Type. +func (*bytesBase64Value) Type() string { + return "bytesBase64" +} + +func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value { + *p = val + return (*bytesBase64Value)(p) +} + +func bytesBase64ValueConv(sval string) (interface{}, error) { + + bin, err := base64.StdEncoding.DecodeString(sval) + if err == nil { + return bin, nil + } + + return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err) +} + +// GetBytesBase64 return the []byte value of a flag with the given name +func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) { + val, err := f.getFlagType(name, "bytesBase64", bytesBase64ValueConv) + + if err != nil { + return []byte{}, err + } + + return val.([]byte), nil +} + +// BytesBase64Var defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) { + f.VarP(newBytesBase64Value(value, p), name, "", usage) +} + +// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) { + f.VarP(newBytesBase64Value(value, p), name, shorthand, usage) +} + +// BytesBase64Var defines an []byte flag with specified name, default value, and usage string. +// The argument p points to an []byte variable in which to store the value of the flag. +func BytesBase64Var(p *[]byte, name string, value []byte, usage string) { + CommandLine.VarP(newBytesBase64Value(value, p), name, "", usage) +} + +// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash. +func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) { + CommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage) +} + +// BytesBase64 defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesBase64VarP(p, name, "", value, usage) + return p +} + +// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte { + p := new([]byte) + f.BytesBase64VarP(p, name, shorthand, value, usage) + return p +} + +// BytesBase64 defines an []byte flag with specified name, default value, and usage string. +// The return value is the address of an []byte variable that stores the value of the flag. +func BytesBase64(name string, value []byte, usage string) *[]byte { + return CommandLine.BytesBase64P(name, "", value, usage) +} + +// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash. +func BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte { + return CommandLine.BytesBase64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go new file mode 100644 index 0000000..aa126e4 --- /dev/null +++ b/vendor/github.com/spf13/pflag/count.go @@ -0,0 +1,96 @@ +package pflag + +import "strconv" + +// -- count Value +type countValue int + +func newCountValue(val int, p *int) *countValue { + *p = val + return (*countValue)(p) +} + +func (i *countValue) Set(s string) error { + // "+1" means that no specific value was passed, so increment + if s == "+1" { + *i = countValue(*i + 1) + return nil + } + v, err := strconv.ParseInt(s, 0, 0) + *i = countValue(v) + return err +} + +func (i *countValue) Type() string { + return "count" +} + +func (i *countValue) String() string { return strconv.Itoa(int(*i)) } + +func countConv(sval string) (interface{}, error) { + i, err := strconv.Atoi(sval) + if err != nil { + return nil, err + } + return i, nil +} + +// GetCount return the int value of a flag with the given name +func (f *FlagSet) GetCount(name string) (int, error) { + val, err := f.getFlagType(name, "count", countConv) + if err != nil { + return 0, err + } + return val.(int), nil +} + +// CountVar defines a count flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func (f *FlagSet) CountVar(p *int, name string, usage string) { + f.CountVarP(p, name, "", usage) +} + +// CountVarP is like CountVar only take a shorthand for the flag name. +func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) { + flag := f.VarPF(newCountValue(0, p), name, shorthand, usage) + flag.NoOptDefVal = "+1" +} + +// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set +func CountVar(p *int, name string, usage string) { + CommandLine.CountVar(p, name, usage) +} + +// CountVarP is like CountVar only take a shorthand for the flag name. +func CountVarP(p *int, name, shorthand string, usage string) { + CommandLine.CountVarP(p, name, shorthand, usage) +} + +// Count defines a count flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func (f *FlagSet) Count(name string, usage string) *int { + p := new(int) + f.CountVarP(p, name, "", usage) + return p +} + +// CountP is like Count only takes a shorthand for the flag name. +func (f *FlagSet) CountP(name, shorthand string, usage string) *int { + p := new(int) + f.CountVarP(p, name, shorthand, usage) + return p +} + +// Count defines a count flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +// A count flag will add 1 to its value evey time it is found on the command line +func Count(name string, usage string) *int { + return CommandLine.CountP(name, "", usage) +} + +// CountP is like Count only takes a shorthand for the flag name. +func CountP(name, shorthand string, usage string) *int { + return CommandLine.CountP(name, shorthand, usage) +} diff --git a/vendor/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go new file mode 100644 index 0000000..e9debef --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration.go @@ -0,0 +1,86 @@ +package pflag + +import ( + "time" +) + +// -- time.Duration Value +type durationValue time.Duration + +func newDurationValue(val time.Duration, p *time.Duration) *durationValue { + *p = val + return (*durationValue)(p) +} + +func (d *durationValue) Set(s string) error { + v, err := time.ParseDuration(s) + *d = durationValue(v) + return err +} + +func (d *durationValue) Type() string { + return "duration" +} + +func (d *durationValue) String() string { return (*time.Duration)(d).String() } + +func durationConv(sval string) (interface{}, error) { + return time.ParseDuration(sval) +} + +// GetDuration return the duration value of a flag with the given name +func (f *FlagSet) GetDuration(name string) (time.Duration, error) { + val, err := f.getFlagType(name, "duration", durationConv) + if err != nil { + return 0, err + } + return val.(time.Duration), nil +} + +// DurationVar defines a time.Duration flag with specified name, default value, and usage string. +// The argument p points to a time.Duration variable in which to store the value of the flag. +func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) { + f.VarP(newDurationValue(value, p), name, "", usage) +} + +// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { + f.VarP(newDurationValue(value, p), name, shorthand, usage) +} + +// DurationVar defines a time.Duration flag with specified name, default value, and usage string. +// The argument p points to a time.Duration variable in which to store the value of the flag. +func DurationVar(p *time.Duration, name string, value time.Duration, usage string) { + CommandLine.VarP(newDurationValue(value, p), name, "", usage) +} + +// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. +func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { + CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage) +} + +// Duration defines a time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a time.Duration variable that stores the value of the flag. +func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration { + p := new(time.Duration) + f.DurationVarP(p, name, "", value, usage) + return p +} + +// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { + p := new(time.Duration) + f.DurationVarP(p, name, shorthand, value, usage) + return p +} + +// Duration defines a time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a time.Duration variable that stores the value of the flag. +func Duration(name string, value time.Duration, usage string) *time.Duration { + return CommandLine.DurationP(name, "", value, usage) +} + +// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. +func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { + return CommandLine.DurationP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/duration_slice.go b/vendor/github.com/spf13/pflag/duration_slice.go new file mode 100644 index 0000000..52c6b6d --- /dev/null +++ b/vendor/github.com/spf13/pflag/duration_slice.go @@ -0,0 +1,128 @@ +package pflag + +import ( + "fmt" + "strings" + "time" +) + +// -- durationSlice Value +type durationSliceValue struct { + value *[]time.Duration + changed bool +} + +func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue { + dsv := new(durationSliceValue) + dsv.value = p + *dsv.value = val + return dsv +} + +func (s *durationSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return err + } + + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *durationSliceValue) Type() string { + return "durationSlice" +} + +func (s *durationSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%s", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func durationSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []time.Duration{}, nil + } + ss := strings.Split(val, ",") + out := make([]time.Duration, len(ss)) + for i, d := range ss { + var err error + out[i], err = time.ParseDuration(d) + if err != nil { + return nil, err + } + + } + return out, nil +} + +// GetDurationSlice returns the []time.Duration value of a flag with the given name +func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) { + val, err := f.getFlagType(name, "durationSlice", durationSliceConv) + if err != nil { + return []time.Duration{}, err + } + return val.([]time.Duration), nil +} + +// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string. +// The argument p points to a []time.Duration variable in which to store the value of the flag. +func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + f.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string. +// The argument p points to a duration[] variable in which to store the value of the flag. +func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage) +} + +// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) { + CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage) +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, "", value, usage) + return &p +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + p := []time.Duration{} + f.DurationSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string. +// The return value is the address of a []time.Duration variable that stores the value of the flag. +func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, "", value, usage) +} + +// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash. +func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration { + return CommandLine.DurationSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go new file mode 100644 index 0000000..9beeda8 --- /dev/null +++ b/vendor/github.com/spf13/pflag/flag.go @@ -0,0 +1,1227 @@ +// Copyright 2009 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 pflag is a drop-in replacement for Go's flag package, implementing +POSIX/GNU-style --flags. + +pflag is compatible with the GNU extensions to the POSIX recommendations +for command-line options. See +http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html + +Usage: + +pflag is a drop-in replacement of Go's native flag package. If you import +pflag under the name "flag" then all code should continue to function +with no changes. + + import flag "github.com/spf13/pflag" + +There is one exception to this: if you directly instantiate the Flag struct +there is one more field "Shorthand" that you will need to set. +Most code never instantiates this struct directly, and instead uses +functions such as String(), BoolVar(), and Var(), and is therefore +unaffected. + +Define flags using flag.String(), Bool(), Int(), etc. + +This declares an integer flag, -flagname, stored in the pointer ip, with type *int. + var ip = flag.Int("flagname", 1234, "help message for flagname") +If you like, you can bind the flag to a variable using the Var() functions. + var flagvar int + func init() { + flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") + } +Or you can create custom flags that satisfy the Value interface (with +pointer receivers) and couple them to flag parsing by + flag.Var(&flagVal, "name", "help message for flagname") +For such flags, the default value is just the initial value of the variable. + +After all flags are defined, call + flag.Parse() +to parse the command line into the defined flags. + +Flags may then be used directly. If you're using the flags themselves, +they are all pointers; if you bind to variables, they're values. + fmt.Println("ip has value ", *ip) + fmt.Println("flagvar has value ", flagvar) + +After parsing, the arguments after the flag are available as the +slice flag.Args() or individually as flag.Arg(i). +The arguments are indexed from 0 through flag.NArg()-1. + +The pflag package also defines some new functions that are not in flag, +that give one-letter shorthands for flags. You can use these by appending +'P' to the name of any function that defines a flag. + var ip = flag.IntP("flagname", "f", 1234, "help message") + var flagvar bool + func init() { + flag.BoolVarP("boolname", "b", true, "help message") + } + flag.VarP(&flagVar, "varname", "v", 1234, "help message") +Shorthand letters can be used with single dashes on the command line. +Boolean shorthand flags can be combined with other shorthand flags. + +Command line flag syntax: + --flag // boolean flags only + --flag=x + +Unlike the flag package, a single dash before an option means something +different than a double dash. Single dashes signify a series of shorthand +letters for flags. All but the last shorthand letter must be boolean flags. + // boolean flags + -f + -abc + // non-boolean flags + -n 1234 + -Ifile + // mixed + -abcs "hello" + -abcn1234 + +Flag parsing stops after the terminator "--". Unlike the flag package, +flags can be interspersed with arguments anywhere on the command line +before this terminator. + +Integer flags accept 1234, 0664, 0x1234 and may be negative. +Boolean flags (in their long form) accept 1, 0, t, f, true, false, +TRUE, FALSE, True, False. +Duration flags accept any input valid for time.ParseDuration. + +The default set of command-line flags is controlled by +top-level functions. The FlagSet type allows one to define +independent sets of flags, such as to implement subcommands +in a command-line interface. The methods of FlagSet are +analogous to the top-level functions for the command-line +flag set. +*/ +package pflag + +import ( + "bytes" + "errors" + goflag "flag" + "fmt" + "io" + "os" + "sort" + "strings" +) + +// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined. +var ErrHelp = errors.New("pflag: help requested") + +// ErrorHandling defines how to handle flag parsing errors. +type ErrorHandling int + +const ( + // ContinueOnError will return an err from Parse() if an error is found + ContinueOnError ErrorHandling = iota + // ExitOnError will call os.Exit(2) if an error is found when parsing + ExitOnError + // PanicOnError will panic() if an error is found when parsing flags + PanicOnError +) + +// ParseErrorsWhitelist defines the parsing errors that can be ignored +type ParseErrorsWhitelist struct { + // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags + UnknownFlags bool +} + +// NormalizedName is a flag name that has been normalized according to rules +// for the FlagSet (e.g. making '-' and '_' equivalent). +type NormalizedName string + +// A FlagSet represents a set of defined flags. +type FlagSet struct { + // Usage is the function called when an error occurs while parsing flags. + // The field is a function (not a method) that may be changed to point to + // a custom error handler. + Usage func() + + // SortFlags is used to indicate, if user wants to have sorted flags in + // help/usage messages. + SortFlags bool + + // ParseErrorsWhitelist is used to configure a whitelist of errors + ParseErrorsWhitelist ParseErrorsWhitelist + + name string + parsed bool + actual map[NormalizedName]*Flag + orderedActual []*Flag + sortedActual []*Flag + formal map[NormalizedName]*Flag + orderedFormal []*Flag + sortedFormal []*Flag + shorthands map[byte]*Flag + args []string // arguments after flags + argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no -- + errorHandling ErrorHandling + output io.Writer // nil means stderr; use out() accessor + interspersed bool // allow interspersed option/non-option args + normalizeNameFunc func(f *FlagSet, name string) NormalizedName + + addedGoFlagSets []*goflag.FlagSet +} + +// A Flag represents the state of a flag. +type Flag struct { + Name string // name as it appears on command line + Shorthand string // one-letter abbreviated flag + Usage string // help message + Value Value // value as set + DefValue string // default value (as text); for usage message + Changed bool // If the user set the value (or if left to default) + NoOptDefVal string // default value (as text); if the flag is on the command line without any options + Deprecated string // If this flag is deprecated, this string is the new or now thing to use + Hidden bool // used by cobra.Command to allow flags to be hidden from help/usage text + ShorthandDeprecated string // If the shorthand of this flag is deprecated, this string is the new or now thing to use + Annotations map[string][]string // used by cobra.Command bash autocomple code +} + +// Value is the interface to the dynamic value stored in a flag. +// (The default value is represented as a string.) +type Value interface { + String() string + Set(string) error + Type() string +} + +// sortFlags returns the flags as a slice in lexicographical sorted order. +func sortFlags(flags map[NormalizedName]*Flag) []*Flag { + list := make(sort.StringSlice, len(flags)) + i := 0 + for k := range flags { + list[i] = string(k) + i++ + } + list.Sort() + result := make([]*Flag, len(list)) + for i, name := range list { + result[i] = flags[NormalizedName(name)] + } + return result +} + +// SetNormalizeFunc allows you to add a function which can translate flag names. +// Flags added to the FlagSet will be translated and then when anything tries to +// look up the flag that will also be translated. So it would be possible to create +// a flag named "getURL" and have it translated to "geturl". A user could then pass +// "--getUrl" which may also be translated to "geturl" and everything will work. +func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) { + f.normalizeNameFunc = n + f.sortedFormal = f.sortedFormal[:0] + for fname, flag := range f.formal { + nname := f.normalizeFlagName(flag.Name) + if fname == nname { + continue + } + flag.Name = string(nname) + delete(f.formal, fname) + f.formal[nname] = flag + if _, set := f.actual[fname]; set { + delete(f.actual, fname) + f.actual[nname] = flag + } + } +} + +// GetNormalizeFunc returns the previously set NormalizeFunc of a function which +// does no translation, if not set previously. +func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName { + if f.normalizeNameFunc != nil { + return f.normalizeNameFunc + } + return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) } +} + +func (f *FlagSet) normalizeFlagName(name string) NormalizedName { + n := f.GetNormalizeFunc() + return n(f, name) +} + +func (f *FlagSet) out() io.Writer { + if f.output == nil { + return os.Stderr + } + return f.output +} + +// SetOutput sets the destination for usage and error messages. +// If output is nil, os.Stderr is used. +func (f *FlagSet) SetOutput(output io.Writer) { + f.output = output +} + +// VisitAll visits the flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits all flags, even those not set. +func (f *FlagSet) VisitAll(fn func(*Flag)) { + if len(f.formal) == 0 { + return + } + + var flags []*Flag + if f.SortFlags { + if len(f.formal) != len(f.sortedFormal) { + f.sortedFormal = sortFlags(f.formal) + } + flags = f.sortedFormal + } else { + flags = f.orderedFormal + } + + for _, flag := range flags { + fn(flag) + } +} + +// HasFlags returns a bool to indicate if the FlagSet has any flags defined. +func (f *FlagSet) HasFlags() bool { + return len(f.formal) > 0 +} + +// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags +// that are not hidden. +func (f *FlagSet) HasAvailableFlags() bool { + for _, flag := range f.formal { + if !flag.Hidden { + return true + } + } + return false +} + +// VisitAll visits the command-line flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits all flags, even those not set. +func VisitAll(fn func(*Flag)) { + CommandLine.VisitAll(fn) +} + +// Visit visits the flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits only those flags that have been set. +func (f *FlagSet) Visit(fn func(*Flag)) { + if len(f.actual) == 0 { + return + } + + var flags []*Flag + if f.SortFlags { + if len(f.actual) != len(f.sortedActual) { + f.sortedActual = sortFlags(f.actual) + } + flags = f.sortedActual + } else { + flags = f.orderedActual + } + + for _, flag := range flags { + fn(flag) + } +} + +// Visit visits the command-line flags in lexicographical order or +// in primordial order if f.SortFlags is false, calling fn for each. +// It visits only those flags that have been set. +func Visit(fn func(*Flag)) { + CommandLine.Visit(fn) +} + +// Lookup returns the Flag structure of the named flag, returning nil if none exists. +func (f *FlagSet) Lookup(name string) *Flag { + return f.lookup(f.normalizeFlagName(name)) +} + +// ShorthandLookup returns the Flag structure of the short handed flag, +// returning nil if none exists. +// It panics, if len(name) > 1. +func (f *FlagSet) ShorthandLookup(name string) *Flag { + if name == "" { + return nil + } + if len(name) > 1 { + msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + c := name[0] + return f.shorthands[c] +} + +// lookup returns the Flag structure of the named flag, returning nil if none exists. +func (f *FlagSet) lookup(name NormalizedName) *Flag { + return f.formal[name] +} + +// func to return a given type for a given flag name +func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) { + flag := f.Lookup(name) + if flag == nil { + err := fmt.Errorf("flag accessed but not defined: %s", name) + return nil, err + } + + if flag.Value.Type() != ftype { + err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type()) + return nil, err + } + + sval := flag.Value.String() + result, err := convFunc(sval) + if err != nil { + return nil, err + } + return result, nil +} + +// ArgsLenAtDash will return the length of f.Args at the moment when a -- was +// found during arg parsing. This allows your program to know which args were +// before the -- and which came after. +func (f *FlagSet) ArgsLenAtDash() int { + return f.argsLenAtDash +} + +// MarkDeprecated indicated that a flag is deprecated in your program. It will +// continue to function but will not show up in help or usage messages. Using +// this flag will also print the given usageMessage. +func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + if usageMessage == "" { + return fmt.Errorf("deprecated message for flag %q must be set", name) + } + flag.Deprecated = usageMessage + flag.Hidden = true + return nil +} + +// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your +// program. It will continue to function but will not show up in help or usage +// messages. Using this flag will also print the given usageMessage. +func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + if usageMessage == "" { + return fmt.Errorf("deprecated message for flag %q must be set", name) + } + flag.ShorthandDeprecated = usageMessage + return nil +} + +// MarkHidden sets a flag to 'hidden' in your program. It will continue to +// function but will not show up in help or usage messages. +func (f *FlagSet) MarkHidden(name string) error { + flag := f.Lookup(name) + if flag == nil { + return fmt.Errorf("flag %q does not exist", name) + } + flag.Hidden = true + return nil +} + +// Lookup returns the Flag structure of the named command-line flag, +// returning nil if none exists. +func Lookup(name string) *Flag { + return CommandLine.Lookup(name) +} + +// ShorthandLookup returns the Flag structure of the short handed flag, +// returning nil if none exists. +func ShorthandLookup(name string) *Flag { + return CommandLine.ShorthandLookup(name) +} + +// Set sets the value of the named flag. +func (f *FlagSet) Set(name, value string) error { + normalName := f.normalizeFlagName(name) + flag, ok := f.formal[normalName] + if !ok { + return fmt.Errorf("no such flag -%v", name) + } + + err := flag.Value.Set(value) + if err != nil { + var flagName string + if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { + flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name) + } else { + flagName = fmt.Sprintf("--%s", flag.Name) + } + return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err) + } + + if !flag.Changed { + if f.actual == nil { + f.actual = make(map[NormalizedName]*Flag) + } + f.actual[normalName] = flag + f.orderedActual = append(f.orderedActual, flag) + + flag.Changed = true + } + + if flag.Deprecated != "" { + fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) + } + return nil +} + +// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet. +// This is sometimes used by spf13/cobra programs which want to generate additional +// bash completion information. +func (f *FlagSet) SetAnnotation(name, key string, values []string) error { + normalName := f.normalizeFlagName(name) + flag, ok := f.formal[normalName] + if !ok { + return fmt.Errorf("no such flag -%v", name) + } + if flag.Annotations == nil { + flag.Annotations = map[string][]string{} + } + flag.Annotations[key] = values + return nil +} + +// Changed returns true if the flag was explicitly set during Parse() and false +// otherwise +func (f *FlagSet) Changed(name string) bool { + flag := f.Lookup(name) + // If a flag doesn't exist, it wasn't changed.... + if flag == nil { + return false + } + return flag.Changed +} + +// Set sets the value of the named command-line flag. +func Set(name, value string) error { + return CommandLine.Set(name, value) +} + +// PrintDefaults prints, to standard error unless configured +// otherwise, the default values of all defined flags in the set. +func (f *FlagSet) PrintDefaults() { + usages := f.FlagUsages() + fmt.Fprint(f.out(), usages) +} + +// defaultIsZeroValue returns true if the default value for this flag represents +// a zero value. +func (f *Flag) defaultIsZeroValue() bool { + switch f.Value.(type) { + case boolFlag: + return f.DefValue == "false" + case *durationValue: + // Beginning in Go 1.7, duration zero values are "0s" + return f.DefValue == "0" || f.DefValue == "0s" + case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value: + return f.DefValue == "0" + case *stringValue: + return f.DefValue == "" + case *ipValue, *ipMaskValue, *ipNetValue: + return f.DefValue == "" + case *intSliceValue, *stringSliceValue, *stringArrayValue: + return f.DefValue == "[]" + default: + switch f.Value.String() { + case "false": + return true + case "": + return true + case "": + return true + case "0": + return true + } + return false + } +} + +// UnquoteUsage extracts a back-quoted name from the usage +// string for a flag and returns it and the un-quoted usage. +// Given "a `name` to show" it returns ("name", "a name to show"). +// If there are no back quotes, the name is an educated guess of the +// type of the flag's value, or the empty string if the flag is boolean. +func UnquoteUsage(flag *Flag) (name string, usage string) { + // Look for a back-quoted name, but avoid the strings package. + usage = flag.Usage + for i := 0; i < len(usage); i++ { + if usage[i] == '`' { + for j := i + 1; j < len(usage); j++ { + if usage[j] == '`' { + name = usage[i+1 : j] + usage = usage[:i] + name + usage[j+1:] + return name, usage + } + } + break // Only one back quote; use type name. + } + } + + name = flag.Value.Type() + switch name { + case "bool": + name = "" + case "float64": + name = "float" + case "int64": + name = "int" + case "uint64": + name = "uint" + case "stringSlice": + name = "strings" + case "intSlice": + name = "ints" + case "uintSlice": + name = "uints" + case "boolSlice": + name = "bools" + } + + return +} + +// Splits the string `s` on whitespace into an initial substring up to +// `i` runes in length and the remainder. Will go `slop` over `i` if +// that encompasses the entire string (which allows the caller to +// avoid short orphan words on the final line). +func wrapN(i, slop int, s string) (string, string) { + if i+slop > len(s) { + return s, "" + } + + w := strings.LastIndexAny(s[:i], " \t\n") + if w <= 0 { + return s, "" + } + nlPos := strings.LastIndex(s[:i], "\n") + if nlPos > 0 && nlPos < w { + return s[:nlPos], s[nlPos+1:] + } + return s[:w], s[w+1:] +} + +// Wraps the string `s` to a maximum width `w` with leading indent +// `i`. The first line is not indented (this is assumed to be done by +// caller). Pass `w` == 0 to do no wrapping +func wrap(i, w int, s string) string { + if w == 0 { + return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1) + } + + // space between indent i and end of line width w into which + // we should wrap the text. + wrap := w - i + + var r, l string + + // Not enough space for sensible wrapping. Wrap as a block on + // the next line instead. + if wrap < 24 { + i = 16 + wrap = w - i + r += "\n" + strings.Repeat(" ", i) + } + // If still not enough space then don't even try to wrap. + if wrap < 24 { + return strings.Replace(s, "\n", r, -1) + } + + // Try to avoid short orphan words on the final line, by + // allowing wrapN to go a bit over if that would fit in the + // remainder of the line. + slop := 5 + wrap = wrap - slop + + // Handle first line, which is indented by the caller (or the + // special case above) + l, s = wrapN(wrap, slop, s) + r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1) + + // Now wrap the rest + for s != "" { + var t string + + t, s = wrapN(wrap, slop, s) + r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1) + } + + return r + +} + +// FlagUsagesWrapped returns a string containing the usage information +// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no +// wrapping) +func (f *FlagSet) FlagUsagesWrapped(cols int) string { + buf := new(bytes.Buffer) + + lines := make([]string, 0, len(f.formal)) + + maxlen := 0 + f.VisitAll(func(flag *Flag) { + if flag.Hidden { + return + } + + line := "" + if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { + line = fmt.Sprintf(" -%s, --%s", flag.Shorthand, flag.Name) + } else { + line = fmt.Sprintf(" --%s", flag.Name) + } + + varname, usage := UnquoteUsage(flag) + if varname != "" { + line += " " + varname + } + if flag.NoOptDefVal != "" { + switch flag.Value.Type() { + case "string": + line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal) + case "bool": + if flag.NoOptDefVal != "true" { + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + case "count": + if flag.NoOptDefVal != "+1" { + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + default: + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } + } + + // This special character will be replaced with spacing once the + // correct alignment is calculated + line += "\x00" + if len(line) > maxlen { + maxlen = len(line) + } + + line += usage + if !flag.defaultIsZeroValue() { + if flag.Value.Type() == "string" { + line += fmt.Sprintf(" (default %q)", flag.DefValue) + } else { + line += fmt.Sprintf(" (default %s)", flag.DefValue) + } + } + if len(flag.Deprecated) != 0 { + line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated) + } + + lines = append(lines, line) + }) + + for _, line := range lines { + sidx := strings.Index(line, "\x00") + spacing := strings.Repeat(" ", maxlen-sidx) + // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx + fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:])) + } + + return buf.String() +} + +// FlagUsages returns a string containing the usage information for all flags in +// the FlagSet +func (f *FlagSet) FlagUsages() string { + return f.FlagUsagesWrapped(0) +} + +// PrintDefaults prints to standard error the default values of all defined command-line flags. +func PrintDefaults() { + CommandLine.PrintDefaults() +} + +// defaultUsage is the default function to print a usage message. +func defaultUsage(f *FlagSet) { + fmt.Fprintf(f.out(), "Usage of %s:\n", f.name) + f.PrintDefaults() +} + +// NOTE: Usage is not just defaultUsage(CommandLine) +// because it serves (via godoc flag Usage) as the example +// for how to write your own usage function. + +// Usage prints to standard error a usage message documenting all defined command-line flags. +// The function is a variable that may be changed to point to a custom function. +// By default it prints a simple header and calls PrintDefaults; for details about the +// format of the output and how to control it, see the documentation for PrintDefaults. +var Usage = func() { + fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) + PrintDefaults() +} + +// NFlag returns the number of flags that have been set. +func (f *FlagSet) NFlag() int { return len(f.actual) } + +// NFlag returns the number of command-line flags that have been set. +func NFlag() int { return len(CommandLine.actual) } + +// Arg returns the i'th argument. Arg(0) is the first remaining argument +// after flags have been processed. +func (f *FlagSet) Arg(i int) string { + if i < 0 || i >= len(f.args) { + return "" + } + return f.args[i] +} + +// Arg returns the i'th command-line argument. Arg(0) is the first remaining argument +// after flags have been processed. +func Arg(i int) string { + return CommandLine.Arg(i) +} + +// NArg is the number of arguments remaining after flags have been processed. +func (f *FlagSet) NArg() int { return len(f.args) } + +// NArg is the number of arguments remaining after flags have been processed. +func NArg() int { return len(CommandLine.args) } + +// Args returns the non-flag arguments. +func (f *FlagSet) Args() []string { return f.args } + +// Args returns the non-flag command-line arguments. +func Args() []string { return CommandLine.args } + +// Var defines a flag with the specified name and usage string. The type and +// value of the flag are represented by the first argument, of type Value, which +// typically holds a user-defined implementation of Value. For instance, the +// caller could create a flag that turns a comma-separated string into a slice +// of strings by giving the slice the methods of Value; in particular, Set would +// decompose the comma-separated string into the slice. +func (f *FlagSet) Var(value Value, name string, usage string) { + f.VarP(value, name, "", usage) +} + +// VarPF is like VarP, but returns the flag created +func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag { + // Remember the default value as a string; it won't change. + flag := &Flag{ + Name: name, + Shorthand: shorthand, + Usage: usage, + Value: value, + DefValue: value.String(), + } + f.AddFlag(flag) + return flag +} + +// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) VarP(value Value, name, shorthand, usage string) { + f.VarPF(value, name, shorthand, usage) +} + +// AddFlag will add the flag to the FlagSet +func (f *FlagSet) AddFlag(flag *Flag) { + normalizedFlagName := f.normalizeFlagName(flag.Name) + + _, alreadyThere := f.formal[normalizedFlagName] + if alreadyThere { + msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name) + fmt.Fprintln(f.out(), msg) + panic(msg) // Happens only if flags are declared with identical names + } + if f.formal == nil { + f.formal = make(map[NormalizedName]*Flag) + } + + flag.Name = string(normalizedFlagName) + f.formal[normalizedFlagName] = flag + f.orderedFormal = append(f.orderedFormal, flag) + + if flag.Shorthand == "" { + return + } + if len(flag.Shorthand) > 1 { + msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + if f.shorthands == nil { + f.shorthands = make(map[byte]*Flag) + } + c := flag.Shorthand[0] + used, alreadyThere := f.shorthands[c] + if alreadyThere { + msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name) + fmt.Fprintf(f.out(), msg) + panic(msg) + } + f.shorthands[c] = flag +} + +// AddFlagSet adds one FlagSet to another. If a flag is already present in f +// the flag from newSet will be ignored. +func (f *FlagSet) AddFlagSet(newSet *FlagSet) { + if newSet == nil { + return + } + newSet.VisitAll(func(flag *Flag) { + if f.Lookup(flag.Name) == nil { + f.AddFlag(flag) + } + }) +} + +// Var defines a flag with the specified name and usage string. The type and +// value of the flag are represented by the first argument, of type Value, which +// typically holds a user-defined implementation of Value. For instance, the +// caller could create a flag that turns a comma-separated string into a slice +// of strings by giving the slice the methods of Value; in particular, Set would +// decompose the comma-separated string into the slice. +func Var(value Value, name string, usage string) { + CommandLine.VarP(value, name, "", usage) +} + +// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. +func VarP(value Value, name, shorthand, usage string) { + CommandLine.VarP(value, name, shorthand, usage) +} + +// failf prints to standard error a formatted error and usage message and +// returns the error. +func (f *FlagSet) failf(format string, a ...interface{}) error { + err := fmt.Errorf(format, a...) + if f.errorHandling != ContinueOnError { + fmt.Fprintln(f.out(), err) + f.usage() + } + return err +} + +// usage calls the Usage method for the flag set, or the usage function if +// the flag set is CommandLine. +func (f *FlagSet) usage() { + if f == CommandLine { + Usage() + } else if f.Usage == nil { + defaultUsage(f) + } else { + f.Usage() + } +} + +//--unknown (args will be empty) +//--unknown --next-flag ... (args will be --next-flag ...) +//--unknown arg ... (args will be arg ...) +func stripUnknownFlagValue(args []string) []string { + if len(args) == 0 { + //--unknown + return args + } + + first := args[0] + if len(first) > 0 && first[0] == '-' { + //--unknown --next-flag ... + return args + } + + //--unknown arg ... (args will be arg ...) + if len(args) > 1 { + return args[1:] + } + return nil +} + +func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { + a = args + name := s[2:] + if len(name) == 0 || name[0] == '-' || name[0] == '=' { + err = f.failf("bad flag syntax: %s", s) + return + } + + split := strings.SplitN(name, "=", 2) + name = split[0] + flag, exists := f.formal[f.normalizeFlagName(name)] + + if !exists { + switch { + case name == "help": + f.usage() + return a, ErrHelp + case f.ParseErrorsWhitelist.UnknownFlags: + // --unknown=unknownval arg ... + // we do not want to lose arg in this case + if len(split) >= 2 { + return a, nil + } + + return stripUnknownFlagValue(a), nil + default: + err = f.failf("unknown flag: --%s", name) + return + } + } + + var value string + if len(split) == 2 { + // '--flag=arg' + value = split[1] + } else if flag.NoOptDefVal != "" { + // '--flag' (arg was optional) + value = flag.NoOptDefVal + } else if len(a) > 0 { + // '--flag arg' + value = a[0] + a = a[1:] + } else { + // '--flag' (arg was required) + err = f.failf("flag needs an argument: %s", s) + return + } + + err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } + return +} + +func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) { + outArgs = args + + if strings.HasPrefix(shorthands, "test.") { + return + } + + outShorts = shorthands[1:] + c := shorthands[0] + + flag, exists := f.shorthands[c] + if !exists { + switch { + case c == 'h': + f.usage() + err = ErrHelp + return + case f.ParseErrorsWhitelist.UnknownFlags: + // '-f=arg arg ...' + // we do not want to lose arg in this case + if len(shorthands) > 2 && shorthands[1] == '=' { + outShorts = "" + return + } + + outArgs = stripUnknownFlagValue(outArgs) + return + default: + err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) + return + } + } + + var value string + if len(shorthands) > 2 && shorthands[1] == '=' { + // '-f=arg' + value = shorthands[2:] + outShorts = "" + } else if flag.NoOptDefVal != "" { + // '-f' (arg was optional) + value = flag.NoOptDefVal + } else if len(shorthands) > 1 { + // '-farg' + value = shorthands[1:] + outShorts = "" + } else if len(args) > 0 { + // '-f arg' + value = args[0] + outArgs = args[1:] + } else { + // '-f' (arg was required) + err = f.failf("flag needs an argument: %q in -%s", c, shorthands) + return + } + + if flag.ShorthandDeprecated != "" { + fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) + } + + err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } + return +} + +func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) { + a = args + shorthands := s[1:] + + // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv"). + for len(shorthands) > 0 { + shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn) + if err != nil { + return + } + } + + return +} + +func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) { + for len(args) > 0 { + s := args[0] + args = args[1:] + if len(s) == 0 || s[0] != '-' || len(s) == 1 { + if !f.interspersed { + f.args = append(f.args, s) + f.args = append(f.args, args...) + return nil + } + f.args = append(f.args, s) + continue + } + + if s[1] == '-' { + if len(s) == 2 { // "--" terminates the flags + f.argsLenAtDash = len(f.args) + f.args = append(f.args, args...) + break + } + args, err = f.parseLongArg(s, args, fn) + } else { + args, err = f.parseShortArg(s, args, fn) + } + if err != nil { + return + } + } + return +} + +// Parse parses flag definitions from the argument list, which should not +// include the command name. Must be called after all flags in the FlagSet +// are defined and before flags are accessed by the program. +// The return value will be ErrHelp if -help was set but not defined. +func (f *FlagSet) Parse(arguments []string) error { + if f.addedGoFlagSets != nil { + for _, goFlagSet := range f.addedGoFlagSets { + goFlagSet.Parse(nil) + } + } + f.parsed = true + + if len(arguments) < 0 { + return nil + } + + f.args = make([]string, 0, len(arguments)) + + set := func(flag *Flag, value string) error { + return f.Set(flag.Name, value) + } + + err := f.parseArgs(arguments, set) + if err != nil { + switch f.errorHandling { + case ContinueOnError: + return err + case ExitOnError: + fmt.Println(err) + os.Exit(2) + case PanicOnError: + panic(err) + } + } + return nil +} + +type parseFunc func(flag *Flag, value string) error + +// ParseAll parses flag definitions from the argument list, which should not +// include the command name. The arguments for fn are flag and value. Must be +// called after all flags in the FlagSet are defined and before flags are +// accessed by the program. The return value will be ErrHelp if -help was set +// but not defined. +func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error { + f.parsed = true + f.args = make([]string, 0, len(arguments)) + + err := f.parseArgs(arguments, fn) + if err != nil { + switch f.errorHandling { + case ContinueOnError: + return err + case ExitOnError: + os.Exit(2) + case PanicOnError: + panic(err) + } + } + return nil +} + +// Parsed reports whether f.Parse has been called. +func (f *FlagSet) Parsed() bool { + return f.parsed +} + +// Parse parses the command-line flags from os.Args[1:]. Must be called +// after all flags are defined and before flags are accessed by the program. +func Parse() { + // Ignore errors; CommandLine is set for ExitOnError. + CommandLine.Parse(os.Args[1:]) +} + +// ParseAll parses the command-line flags from os.Args[1:] and called fn for each. +// The arguments for fn are flag and value. Must be called after all flags are +// defined and before flags are accessed by the program. +func ParseAll(fn func(flag *Flag, value string) error) { + // Ignore errors; CommandLine is set for ExitOnError. + CommandLine.ParseAll(os.Args[1:], fn) +} + +// SetInterspersed sets whether to support interspersed option/non-option arguments. +func SetInterspersed(interspersed bool) { + CommandLine.SetInterspersed(interspersed) +} + +// Parsed returns true if the command-line flags have been parsed. +func Parsed() bool { + return CommandLine.Parsed() +} + +// CommandLine is the default set of command-line flags, parsed from os.Args. +var CommandLine = NewFlagSet(os.Args[0], ExitOnError) + +// NewFlagSet returns a new, empty flag set with the specified name, +// error handling property and SortFlags set to true. +func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { + f := &FlagSet{ + name: name, + errorHandling: errorHandling, + argsLenAtDash: -1, + interspersed: true, + SortFlags: true, + } + return f +} + +// SetInterspersed sets whether to support interspersed option/non-option arguments. +func (f *FlagSet) SetInterspersed(interspersed bool) { + f.interspersed = interspersed +} + +// Init sets the name and error handling property for a flag set. +// By default, the zero FlagSet uses an empty name and the +// ContinueOnError error handling policy. +func (f *FlagSet) Init(name string, errorHandling ErrorHandling) { + f.name = name + f.errorHandling = errorHandling + f.argsLenAtDash = -1 +} diff --git a/vendor/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go new file mode 100644 index 0000000..a243f81 --- /dev/null +++ b/vendor/github.com/spf13/pflag/float32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- float32 Value +type float32Value float32 + +func newFloat32Value(val float32, p *float32) *float32Value { + *p = val + return (*float32Value)(p) +} + +func (f *float32Value) Set(s string) error { + v, err := strconv.ParseFloat(s, 32) + *f = float32Value(v) + return err +} + +func (f *float32Value) Type() string { + return "float32" +} + +func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) } + +func float32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseFloat(sval, 32) + if err != nil { + return 0, err + } + return float32(v), nil +} + +// GetFloat32 return the float32 value of a flag with the given name +func (f *FlagSet) GetFloat32(name string) (float32, error) { + val, err := f.getFlagType(name, "float32", float32Conv) + if err != nil { + return 0, err + } + return val.(float32), nil +} + +// Float32Var defines a float32 flag with specified name, default value, and usage string. +// The argument p points to a float32 variable in which to store the value of the flag. +func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) { + f.VarP(newFloat32Value(value, p), name, "", usage) +} + +// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) { + f.VarP(newFloat32Value(value, p), name, shorthand, usage) +} + +// Float32Var defines a float32 flag with specified name, default value, and usage string. +// The argument p points to a float32 variable in which to store the value of the flag. +func Float32Var(p *float32, name string, value float32, usage string) { + CommandLine.VarP(newFloat32Value(value, p), name, "", usage) +} + +// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. +func Float32VarP(p *float32, name, shorthand string, value float32, usage string) { + CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage) +} + +// Float32 defines a float32 flag with specified name, default value, and usage string. +// The return value is the address of a float32 variable that stores the value of the flag. +func (f *FlagSet) Float32(name string, value float32, usage string) *float32 { + p := new(float32) + f.Float32VarP(p, name, "", value, usage) + return p +} + +// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 { + p := new(float32) + f.Float32VarP(p, name, shorthand, value, usage) + return p +} + +// Float32 defines a float32 flag with specified name, default value, and usage string. +// The return value is the address of a float32 variable that stores the value of the flag. +func Float32(name string, value float32, usage string) *float32 { + return CommandLine.Float32P(name, "", value, usage) +} + +// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. +func Float32P(name, shorthand string, value float32, usage string) *float32 { + return CommandLine.Float32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go new file mode 100644 index 0000000..04b5492 --- /dev/null +++ b/vendor/github.com/spf13/pflag/float64.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- float64 Value +type float64Value float64 + +func newFloat64Value(val float64, p *float64) *float64Value { + *p = val + return (*float64Value)(p) +} + +func (f *float64Value) Set(s string) error { + v, err := strconv.ParseFloat(s, 64) + *f = float64Value(v) + return err +} + +func (f *float64Value) Type() string { + return "float64" +} + +func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) } + +func float64Conv(sval string) (interface{}, error) { + return strconv.ParseFloat(sval, 64) +} + +// GetFloat64 return the float64 value of a flag with the given name +func (f *FlagSet) GetFloat64(name string) (float64, error) { + val, err := f.getFlagType(name, "float64", float64Conv) + if err != nil { + return 0, err + } + return val.(float64), nil +} + +// Float64Var defines a float64 flag with specified name, default value, and usage string. +// The argument p points to a float64 variable in which to store the value of the flag. +func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) { + f.VarP(newFloat64Value(value, p), name, "", usage) +} + +// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) { + f.VarP(newFloat64Value(value, p), name, shorthand, usage) +} + +// Float64Var defines a float64 flag with specified name, default value, and usage string. +// The argument p points to a float64 variable in which to store the value of the flag. +func Float64Var(p *float64, name string, value float64, usage string) { + CommandLine.VarP(newFloat64Value(value, p), name, "", usage) +} + +// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. +func Float64VarP(p *float64, name, shorthand string, value float64, usage string) { + CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage) +} + +// Float64 defines a float64 flag with specified name, default value, and usage string. +// The return value is the address of a float64 variable that stores the value of the flag. +func (f *FlagSet) Float64(name string, value float64, usage string) *float64 { + p := new(float64) + f.Float64VarP(p, name, "", value, usage) + return p +} + +// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 { + p := new(float64) + f.Float64VarP(p, name, shorthand, value, usage) + return p +} + +// Float64 defines a float64 flag with specified name, default value, and usage string. +// The return value is the address of a float64 variable that stores the value of the flag. +func Float64(name string, value float64, usage string) *float64 { + return CommandLine.Float64P(name, "", value, usage) +} + +// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. +func Float64P(name, shorthand string, value float64, usage string) *float64 { + return CommandLine.Float64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go new file mode 100644 index 0000000..d3dd72b --- /dev/null +++ b/vendor/github.com/spf13/pflag/golangflag.go @@ -0,0 +1,105 @@ +// Copyright 2009 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 pflag + +import ( + goflag "flag" + "reflect" + "strings" +) + +// flagValueWrapper implements pflag.Value around a flag.Value. The main +// difference here is the addition of the Type method that returns a string +// name of the type. As this is generally unknown, we approximate that with +// reflection. +type flagValueWrapper struct { + inner goflag.Value + flagType string +} + +// We are just copying the boolFlag interface out of goflag as that is what +// they use to decide if a flag should get "true" when no arg is given. +type goBoolFlag interface { + goflag.Value + IsBoolFlag() bool +} + +func wrapFlagValue(v goflag.Value) Value { + // If the flag.Value happens to also be a pflag.Value, just use it directly. + if pv, ok := v.(Value); ok { + return pv + } + + pv := &flagValueWrapper{ + inner: v, + } + + t := reflect.TypeOf(v) + if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr { + t = t.Elem() + } + + pv.flagType = strings.TrimSuffix(t.Name(), "Value") + return pv +} + +func (v *flagValueWrapper) String() string { + return v.inner.String() +} + +func (v *flagValueWrapper) Set(s string) error { + return v.inner.Set(s) +} + +func (v *flagValueWrapper) Type() string { + return v.flagType +} + +// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag +// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei +// with both `-v` and `--v` in flags. If the golang flag was more than a single +// character (ex: `verbose`) it will only be accessible via `--verbose` +func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { + // Remember the default value as a string; it won't change. + flag := &Flag{ + Name: goflag.Name, + Usage: goflag.Usage, + Value: wrapFlagValue(goflag.Value), + // Looks like golang flags don't set DefValue correctly :-( + //DefValue: goflag.DefValue, + DefValue: goflag.Value.String(), + } + // Ex: if the golang flag was -v, allow both -v and --v to work + if len(flag.Name) == 1 { + flag.Shorthand = flag.Name + } + if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() { + flag.NoOptDefVal = "true" + } + return flag +} + +// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet +func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) { + if f.Lookup(goflag.Name) != nil { + return + } + newflag := PFlagFromGoFlag(goflag) + f.AddFlag(newflag) +} + +// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet +func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { + if newSet == nil { + return + } + newSet.VisitAll(func(goflag *goflag.Flag) { + f.AddGoFlag(goflag) + }) + if f.addedGoFlagSets == nil { + f.addedGoFlagSets = make([]*goflag.FlagSet, 0) + } + f.addedGoFlagSets = append(f.addedGoFlagSets, newSet) +} diff --git a/vendor/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go new file mode 100644 index 0000000..1474b89 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- int Value +type intValue int + +func newIntValue(val int, p *int) *intValue { + *p = val + return (*intValue)(p) +} + +func (i *intValue) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 64) + *i = intValue(v) + return err +} + +func (i *intValue) Type() string { + return "int" +} + +func (i *intValue) String() string { return strconv.Itoa(int(*i)) } + +func intConv(sval string) (interface{}, error) { + return strconv.Atoi(sval) +} + +// GetInt return the int value of a flag with the given name +func (f *FlagSet) GetInt(name string) (int, error) { + val, err := f.getFlagType(name, "int", intConv) + if err != nil { + return 0, err + } + return val.(int), nil +} + +// IntVar defines an int flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +func (f *FlagSet) IntVar(p *int, name string, value int, usage string) { + f.VarP(newIntValue(value, p), name, "", usage) +} + +// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) { + f.VarP(newIntValue(value, p), name, shorthand, usage) +} + +// IntVar defines an int flag with specified name, default value, and usage string. +// The argument p points to an int variable in which to store the value of the flag. +func IntVar(p *int, name string, value int, usage string) { + CommandLine.VarP(newIntValue(value, p), name, "", usage) +} + +// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. +func IntVarP(p *int, name, shorthand string, value int, usage string) { + CommandLine.VarP(newIntValue(value, p), name, shorthand, usage) +} + +// Int defines an int flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +func (f *FlagSet) Int(name string, value int, usage string) *int { + p := new(int) + f.IntVarP(p, name, "", value, usage) + return p +} + +// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int { + p := new(int) + f.IntVarP(p, name, shorthand, value, usage) + return p +} + +// Int defines an int flag with specified name, default value, and usage string. +// The return value is the address of an int variable that stores the value of the flag. +func Int(name string, value int, usage string) *int { + return CommandLine.IntP(name, "", value, usage) +} + +// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. +func IntP(name, shorthand string, value int, usage string) *int { + return CommandLine.IntP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int16.go b/vendor/github.com/spf13/pflag/int16.go new file mode 100644 index 0000000..f1a01d0 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int16.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int16 Value +type int16Value int16 + +func newInt16Value(val int16, p *int16) *int16Value { + *p = val + return (*int16Value)(p) +} + +func (i *int16Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 16) + *i = int16Value(v) + return err +} + +func (i *int16Value) Type() string { + return "int16" +} + +func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int16Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 16) + if err != nil { + return 0, err + } + return int16(v), nil +} + +// GetInt16 returns the int16 value of a flag with the given name +func (f *FlagSet) GetInt16(name string) (int16, error) { + val, err := f.getFlagType(name, "int16", int16Conv) + if err != nil { + return 0, err + } + return val.(int16), nil +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func Int16Var(p *int16, name string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func (f *FlagSet) Int16(name string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, "", value, usage) + return p +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, shorthand, value, usage) + return p +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func Int16(name string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, "", value, usage) +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func Int16P(name, shorthand string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go new file mode 100644 index 0000000..9b95944 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int32 Value +type int32Value int32 + +func newInt32Value(val int32, p *int32) *int32Value { + *p = val + return (*int32Value)(p) +} + +func (i *int32Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 32) + *i = int32Value(v) + return err +} + +func (i *int32Value) Type() string { + return "int32" +} + +func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 32) + if err != nil { + return 0, err + } + return int32(v), nil +} + +// GetInt32 return the int32 value of a flag with the given name +func (f *FlagSet) GetInt32(name string) (int32, error) { + val, err := f.getFlagType(name, "int32", int32Conv) + if err != nil { + return 0, err + } + return val.(int32), nil +} + +// Int32Var defines an int32 flag with specified name, default value, and usage string. +// The argument p points to an int32 variable in which to store the value of the flag. +func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) { + f.VarP(newInt32Value(value, p), name, "", usage) +} + +// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) { + f.VarP(newInt32Value(value, p), name, shorthand, usage) +} + +// Int32Var defines an int32 flag with specified name, default value, and usage string. +// The argument p points to an int32 variable in which to store the value of the flag. +func Int32Var(p *int32, name string, value int32, usage string) { + CommandLine.VarP(newInt32Value(value, p), name, "", usage) +} + +// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. +func Int32VarP(p *int32, name, shorthand string, value int32, usage string) { + CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage) +} + +// Int32 defines an int32 flag with specified name, default value, and usage string. +// The return value is the address of an int32 variable that stores the value of the flag. +func (f *FlagSet) Int32(name string, value int32, usage string) *int32 { + p := new(int32) + f.Int32VarP(p, name, "", value, usage) + return p +} + +// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 { + p := new(int32) + f.Int32VarP(p, name, shorthand, value, usage) + return p +} + +// Int32 defines an int32 flag with specified name, default value, and usage string. +// The return value is the address of an int32 variable that stores the value of the flag. +func Int32(name string, value int32, usage string) *int32 { + return CommandLine.Int32P(name, "", value, usage) +} + +// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. +func Int32P(name, shorthand string, value int32, usage string) *int32 { + return CommandLine.Int32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go new file mode 100644 index 0000000..0026d78 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int64.go @@ -0,0 +1,84 @@ +package pflag + +import "strconv" + +// -- int64 Value +type int64Value int64 + +func newInt64Value(val int64, p *int64) *int64Value { + *p = val + return (*int64Value)(p) +} + +func (i *int64Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 64) + *i = int64Value(v) + return err +} + +func (i *int64Value) Type() string { + return "int64" +} + +func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int64Conv(sval string) (interface{}, error) { + return strconv.ParseInt(sval, 0, 64) +} + +// GetInt64 return the int64 value of a flag with the given name +func (f *FlagSet) GetInt64(name string) (int64, error) { + val, err := f.getFlagType(name, "int64", int64Conv) + if err != nil { + return 0, err + } + return val.(int64), nil +} + +// Int64Var defines an int64 flag with specified name, default value, and usage string. +// The argument p points to an int64 variable in which to store the value of the flag. +func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) { + f.VarP(newInt64Value(value, p), name, "", usage) +} + +// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) { + f.VarP(newInt64Value(value, p), name, shorthand, usage) +} + +// Int64Var defines an int64 flag with specified name, default value, and usage string. +// The argument p points to an int64 variable in which to store the value of the flag. +func Int64Var(p *int64, name string, value int64, usage string) { + CommandLine.VarP(newInt64Value(value, p), name, "", usage) +} + +// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. +func Int64VarP(p *int64, name, shorthand string, value int64, usage string) { + CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage) +} + +// Int64 defines an int64 flag with specified name, default value, and usage string. +// The return value is the address of an int64 variable that stores the value of the flag. +func (f *FlagSet) Int64(name string, value int64, usage string) *int64 { + p := new(int64) + f.Int64VarP(p, name, "", value, usage) + return p +} + +// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 { + p := new(int64) + f.Int64VarP(p, name, shorthand, value, usage) + return p +} + +// Int64 defines an int64 flag with specified name, default value, and usage string. +// The return value is the address of an int64 variable that stores the value of the flag. +func Int64(name string, value int64, usage string) *int64 { + return CommandLine.Int64P(name, "", value, usage) +} + +// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. +func Int64P(name, shorthand string, value int64, usage string) *int64 { + return CommandLine.Int64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go new file mode 100644 index 0000000..4da9222 --- /dev/null +++ b/vendor/github.com/spf13/pflag/int8.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int8 Value +type int8Value int8 + +func newInt8Value(val int8, p *int8) *int8Value { + *p = val + return (*int8Value)(p) +} + +func (i *int8Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 8) + *i = int8Value(v) + return err +} + +func (i *int8Value) Type() string { + return "int8" +} + +func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int8Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 8) + if err != nil { + return 0, err + } + return int8(v), nil +} + +// GetInt8 return the int8 value of a flag with the given name +func (f *FlagSet) GetInt8(name string) (int8, error) { + val, err := f.getFlagType(name, "int8", int8Conv) + if err != nil { + return 0, err + } + return val.(int8), nil +} + +// Int8Var defines an int8 flag with specified name, default value, and usage string. +// The argument p points to an int8 variable in which to store the value of the flag. +func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) { + f.VarP(newInt8Value(value, p), name, "", usage) +} + +// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) { + f.VarP(newInt8Value(value, p), name, shorthand, usage) +} + +// Int8Var defines an int8 flag with specified name, default value, and usage string. +// The argument p points to an int8 variable in which to store the value of the flag. +func Int8Var(p *int8, name string, value int8, usage string) { + CommandLine.VarP(newInt8Value(value, p), name, "", usage) +} + +// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. +func Int8VarP(p *int8, name, shorthand string, value int8, usage string) { + CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage) +} + +// Int8 defines an int8 flag with specified name, default value, and usage string. +// The return value is the address of an int8 variable that stores the value of the flag. +func (f *FlagSet) Int8(name string, value int8, usage string) *int8 { + p := new(int8) + f.Int8VarP(p, name, "", value, usage) + return p +} + +// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 { + p := new(int8) + f.Int8VarP(p, name, shorthand, value, usage) + return p +} + +// Int8 defines an int8 flag with specified name, default value, and usage string. +// The return value is the address of an int8 variable that stores the value of the flag. +func Int8(name string, value int8, usage string) *int8 { + return CommandLine.Int8P(name, "", value, usage) +} + +// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. +func Int8P(name, shorthand string, value int8, usage string) *int8 { + return CommandLine.Int8P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go new file mode 100644 index 0000000..1e7c9ed --- /dev/null +++ b/vendor/github.com/spf13/pflag/int_slice.go @@ -0,0 +1,128 @@ +package pflag + +import ( + "fmt" + "strconv" + "strings" +) + +// -- intSlice Value +type intSliceValue struct { + value *[]int + changed bool +} + +func newIntSliceValue(val []int, p *[]int) *intSliceValue { + isv := new(intSliceValue) + isv.value = p + *isv.value = val + return isv +} + +func (s *intSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]int, len(ss)) + for i, d := range ss { + var err error + out[i], err = strconv.Atoi(d) + if err != nil { + return err + } + + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *intSliceValue) Type() string { + return "intSlice" +} + +func (s *intSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%d", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func intSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []int{}, nil + } + ss := strings.Split(val, ",") + out := make([]int, len(ss)) + for i, d := range ss { + var err error + out[i], err = strconv.Atoi(d) + if err != nil { + return nil, err + } + + } + return out, nil +} + +// GetIntSlice return the []int value of a flag with the given name +func (f *FlagSet) GetIntSlice(name string) ([]int, error) { + val, err := f.getFlagType(name, "intSlice", intSliceConv) + if err != nil { + return []int{}, err + } + return val.([]int), nil +} + +// IntSliceVar defines a intSlice flag with specified name, default value, and usage string. +// The argument p points to a []int variable in which to store the value of the flag. +func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) { + f.VarP(newIntSliceValue(value, p), name, "", usage) +} + +// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { + f.VarP(newIntSliceValue(value, p), name, shorthand, usage) +} + +// IntSliceVar defines a int[] flag with specified name, default value, and usage string. +// The argument p points to a int[] variable in which to store the value of the flag. +func IntSliceVar(p *[]int, name string, value []int, usage string) { + CommandLine.VarP(newIntSliceValue(value, p), name, "", usage) +} + +// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. +func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { + CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage) +} + +// IntSlice defines a []int flag with specified name, default value, and usage string. +// The return value is the address of a []int variable that stores the value of the flag. +func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int { + p := []int{} + f.IntSliceVarP(&p, name, "", value, usage) + return &p +} + +// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int { + p := []int{} + f.IntSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// IntSlice defines a []int flag with specified name, default value, and usage string. +// The return value is the address of a []int variable that stores the value of the flag. +func IntSlice(name string, value []int, usage string) *[]int { + return CommandLine.IntSliceP(name, "", value, usage) +} + +// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. +func IntSliceP(name, shorthand string, value []int, usage string) *[]int { + return CommandLine.IntSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go new file mode 100644 index 0000000..3d414ba --- /dev/null +++ b/vendor/github.com/spf13/pflag/ip.go @@ -0,0 +1,94 @@ +package pflag + +import ( + "fmt" + "net" + "strings" +) + +// -- net.IP value +type ipValue net.IP + +func newIPValue(val net.IP, p *net.IP) *ipValue { + *p = val + return (*ipValue)(p) +} + +func (i *ipValue) String() string { return net.IP(*i).String() } +func (i *ipValue) Set(s string) error { + ip := net.ParseIP(strings.TrimSpace(s)) + if ip == nil { + return fmt.Errorf("failed to parse IP: %q", s) + } + *i = ipValue(ip) + return nil +} + +func (i *ipValue) Type() string { + return "ip" +} + +func ipConv(sval string) (interface{}, error) { + ip := net.ParseIP(sval) + if ip != nil { + return ip, nil + } + return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) +} + +// GetIP return the net.IP value of a flag with the given name +func (f *FlagSet) GetIP(name string) (net.IP, error) { + val, err := f.getFlagType(name, "ip", ipConv) + if err != nil { + return nil, err + } + return val.(net.IP), nil +} + +// IPVar defines an net.IP flag with specified name, default value, and usage string. +// The argument p points to an net.IP variable in which to store the value of the flag. +func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) { + f.VarP(newIPValue(value, p), name, "", usage) +} + +// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { + f.VarP(newIPValue(value, p), name, shorthand, usage) +} + +// IPVar defines an net.IP flag with specified name, default value, and usage string. +// The argument p points to an net.IP variable in which to store the value of the flag. +func IPVar(p *net.IP, name string, value net.IP, usage string) { + CommandLine.VarP(newIPValue(value, p), name, "", usage) +} + +// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. +func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { + CommandLine.VarP(newIPValue(value, p), name, shorthand, usage) +} + +// IP defines an net.IP flag with specified name, default value, and usage string. +// The return value is the address of an net.IP variable that stores the value of the flag. +func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP { + p := new(net.IP) + f.IPVarP(p, name, "", value, usage) + return p +} + +// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP { + p := new(net.IP) + f.IPVarP(p, name, shorthand, value, usage) + return p +} + +// IP defines an net.IP flag with specified name, default value, and usage string. +// The return value is the address of an net.IP variable that stores the value of the flag. +func IP(name string, value net.IP, usage string) *net.IP { + return CommandLine.IPP(name, "", value, usage) +} + +// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. +func IPP(name, shorthand string, value net.IP, usage string) *net.IP { + return CommandLine.IPP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ip_slice.go b/vendor/github.com/spf13/pflag/ip_slice.go new file mode 100644 index 0000000..7dd196f --- /dev/null +++ b/vendor/github.com/spf13/pflag/ip_slice.go @@ -0,0 +1,148 @@ +package pflag + +import ( + "fmt" + "io" + "net" + "strings" +) + +// -- ipSlice Value +type ipSliceValue struct { + value *[]net.IP + changed bool +} + +func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue { + ipsv := new(ipSliceValue) + ipsv.value = p + *ipsv.value = val + return ipsv +} + +// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag. +// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended. +func (s *ipSliceValue) Set(val string) error { + + // remove all quote characters + rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") + + // read flag arguments with CSV parser + ipStrSlice, err := readAsCSV(rmQuote.Replace(val)) + if err != nil && err != io.EOF { + return err + } + + // parse ip values into slice + out := make([]net.IP, 0, len(ipStrSlice)) + for _, ipStr := range ipStrSlice { + ip := net.ParseIP(strings.TrimSpace(ipStr)) + if ip == nil { + return fmt.Errorf("invalid string being converted to IP address: %s", ipStr) + } + out = append(out, ip) + } + + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + + s.changed = true + + return nil +} + +// Type returns a string that uniquely represents this flag's type. +func (s *ipSliceValue) Type() string { + return "ipSlice" +} + +// String defines a "native" format for this net.IP slice flag value. +func (s *ipSliceValue) String() string { + + ipStrSlice := make([]string, len(*s.value)) + for i, ip := range *s.value { + ipStrSlice[i] = ip.String() + } + + out, _ := writeAsCSV(ipStrSlice) + + return "[" + out + "]" +} + +func ipSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Emtpy string would cause a slice with one (empty) entry + if len(val) == 0 { + return []net.IP{}, nil + } + ss := strings.Split(val, ",") + out := make([]net.IP, len(ss)) + for i, sval := range ss { + ip := net.ParseIP(strings.TrimSpace(sval)) + if ip == nil { + return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) + } + out[i] = ip + } + return out, nil +} + +// GetIPSlice returns the []net.IP value of a flag with the given name +func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) { + val, err := f.getFlagType(name, "ipSlice", ipSliceConv) + if err != nil { + return []net.IP{}, err + } + return val.([]net.IP), nil +} + +// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string. +// The argument p points to a []net.IP variable in which to store the value of the flag. +func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { + f.VarP(newIPSliceValue(value, p), name, "", usage) +} + +// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { + f.VarP(newIPSliceValue(value, p), name, shorthand, usage) +} + +// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string. +// The argument p points to a []net.IP variable in which to store the value of the flag. +func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { + CommandLine.VarP(newIPSliceValue(value, p), name, "", usage) +} + +// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. +func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { + CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage) +} + +// IPSlice defines a []net.IP flag with specified name, default value, and usage string. +// The return value is the address of a []net.IP variable that stores the value of that flag. +func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP { + p := []net.IP{} + f.IPSliceVarP(&p, name, "", value, usage) + return &p +} + +// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { + p := []net.IP{} + f.IPSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// IPSlice defines a []net.IP flag with specified name, default value, and usage string. +// The return value is the address of a []net.IP variable that stores the value of the flag. +func IPSlice(name string, value []net.IP, usage string) *[]net.IP { + return CommandLine.IPSliceP(name, "", value, usage) +} + +// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. +func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { + return CommandLine.IPSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go new file mode 100644 index 0000000..5bd44bd --- /dev/null +++ b/vendor/github.com/spf13/pflag/ipmask.go @@ -0,0 +1,122 @@ +package pflag + +import ( + "fmt" + "net" + "strconv" +) + +// -- net.IPMask value +type ipMaskValue net.IPMask + +func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue { + *p = val + return (*ipMaskValue)(p) +} + +func (i *ipMaskValue) String() string { return net.IPMask(*i).String() } +func (i *ipMaskValue) Set(s string) error { + ip := ParseIPv4Mask(s) + if ip == nil { + return fmt.Errorf("failed to parse IP mask: %q", s) + } + *i = ipMaskValue(ip) + return nil +} + +func (i *ipMaskValue) Type() string { + return "ipMask" +} + +// ParseIPv4Mask written in IP form (e.g. 255.255.255.0). +// This function should really belong to the net package. +func ParseIPv4Mask(s string) net.IPMask { + mask := net.ParseIP(s) + if mask == nil { + if len(s) != 8 { + return nil + } + // net.IPMask.String() actually outputs things like ffffff00 + // so write a horrible parser for that as well :-( + m := []int{} + for i := 0; i < 4; i++ { + b := "0x" + s[2*i:2*i+2] + d, err := strconv.ParseInt(b, 0, 0) + if err != nil { + return nil + } + m = append(m, int(d)) + } + s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3]) + mask = net.ParseIP(s) + if mask == nil { + return nil + } + } + return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15]) +} + +func parseIPv4Mask(sval string) (interface{}, error) { + mask := ParseIPv4Mask(sval) + if mask == nil { + return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval) + } + return mask, nil +} + +// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name +func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) { + val, err := f.getFlagType(name, "ipMask", parseIPv4Mask) + if err != nil { + return nil, err + } + return val.(net.IPMask), nil +} + +// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. +// The argument p points to an net.IPMask variable in which to store the value of the flag. +func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { + f.VarP(newIPMaskValue(value, p), name, "", usage) +} + +// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { + f.VarP(newIPMaskValue(value, p), name, shorthand, usage) +} + +// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. +// The argument p points to an net.IPMask variable in which to store the value of the flag. +func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { + CommandLine.VarP(newIPMaskValue(value, p), name, "", usage) +} + +// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. +func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { + CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage) +} + +// IPMask defines an net.IPMask flag with specified name, default value, and usage string. +// The return value is the address of an net.IPMask variable that stores the value of the flag. +func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask { + p := new(net.IPMask) + f.IPMaskVarP(p, name, "", value, usage) + return p +} + +// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { + p := new(net.IPMask) + f.IPMaskVarP(p, name, shorthand, value, usage) + return p +} + +// IPMask defines an net.IPMask flag with specified name, default value, and usage string. +// The return value is the address of an net.IPMask variable that stores the value of the flag. +func IPMask(name string, value net.IPMask, usage string) *net.IPMask { + return CommandLine.IPMaskP(name, "", value, usage) +} + +// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash. +func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { + return CommandLine.IPMaskP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/ipnet.go b/vendor/github.com/spf13/pflag/ipnet.go new file mode 100644 index 0000000..e2c1b8b --- /dev/null +++ b/vendor/github.com/spf13/pflag/ipnet.go @@ -0,0 +1,98 @@ +package pflag + +import ( + "fmt" + "net" + "strings" +) + +// IPNet adapts net.IPNet for use as a flag. +type ipNetValue net.IPNet + +func (ipnet ipNetValue) String() string { + n := net.IPNet(ipnet) + return n.String() +} + +func (ipnet *ipNetValue) Set(value string) error { + _, n, err := net.ParseCIDR(strings.TrimSpace(value)) + if err != nil { + return err + } + *ipnet = ipNetValue(*n) + return nil +} + +func (*ipNetValue) Type() string { + return "ipNet" +} + +func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue { + *p = val + return (*ipNetValue)(p) +} + +func ipNetConv(sval string) (interface{}, error) { + _, n, err := net.ParseCIDR(strings.TrimSpace(sval)) + if err == nil { + return *n, nil + } + return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval) +} + +// GetIPNet return the net.IPNet value of a flag with the given name +func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) { + val, err := f.getFlagType(name, "ipNet", ipNetConv) + if err != nil { + return net.IPNet{}, err + } + return val.(net.IPNet), nil +} + +// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. +// The argument p points to an net.IPNet variable in which to store the value of the flag. +func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { + f.VarP(newIPNetValue(value, p), name, "", usage) +} + +// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { + f.VarP(newIPNetValue(value, p), name, shorthand, usage) +} + +// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. +// The argument p points to an net.IPNet variable in which to store the value of the flag. +func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { + CommandLine.VarP(newIPNetValue(value, p), name, "", usage) +} + +// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. +func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { + CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage) +} + +// IPNet defines an net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of an net.IPNet variable that stores the value of the flag. +func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet { + p := new(net.IPNet) + f.IPNetVarP(p, name, "", value, usage) + return p +} + +// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { + p := new(net.IPNet) + f.IPNetVarP(p, name, shorthand, value, usage) + return p +} + +// IPNet defines an net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of an net.IPNet variable that stores the value of the flag. +func IPNet(name string, value net.IPNet, usage string) *net.IPNet { + return CommandLine.IPNetP(name, "", value, usage) +} + +// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. +func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { + return CommandLine.IPNetP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go new file mode 100644 index 0000000..04e0a26 --- /dev/null +++ b/vendor/github.com/spf13/pflag/string.go @@ -0,0 +1,80 @@ +package pflag + +// -- string Value +type stringValue string + +func newStringValue(val string, p *string) *stringValue { + *p = val + return (*stringValue)(p) +} + +func (s *stringValue) Set(val string) error { + *s = stringValue(val) + return nil +} +func (s *stringValue) Type() string { + return "string" +} + +func (s *stringValue) String() string { return string(*s) } + +func stringConv(sval string) (interface{}, error) { + return sval, nil +} + +// GetString return the string value of a flag with the given name +func (f *FlagSet) GetString(name string) (string, error) { + val, err := f.getFlagType(name, "string", stringConv) + if err != nil { + return "", err + } + return val.(string), nil +} + +// StringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a string variable in which to store the value of the flag. +func (f *FlagSet) StringVar(p *string, name string, value string, usage string) { + f.VarP(newStringValue(value, p), name, "", usage) +} + +// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) { + f.VarP(newStringValue(value, p), name, shorthand, usage) +} + +// StringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a string variable in which to store the value of the flag. +func StringVar(p *string, name string, value string, usage string) { + CommandLine.VarP(newStringValue(value, p), name, "", usage) +} + +// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. +func StringVarP(p *string, name, shorthand string, value string, usage string) { + CommandLine.VarP(newStringValue(value, p), name, shorthand, usage) +} + +// String defines a string flag with specified name, default value, and usage string. +// The return value is the address of a string variable that stores the value of the flag. +func (f *FlagSet) String(name string, value string, usage string) *string { + p := new(string) + f.StringVarP(p, name, "", value, usage) + return p +} + +// StringP is like String, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string { + p := new(string) + f.StringVarP(p, name, shorthand, value, usage) + return p +} + +// String defines a string flag with specified name, default value, and usage string. +// The return value is the address of a string variable that stores the value of the flag. +func String(name string, value string, usage string) *string { + return CommandLine.StringP(name, "", value, usage) +} + +// StringP is like String, but accepts a shorthand letter that can be used after a single dash. +func StringP(name, shorthand string, value string, usage string) *string { + return CommandLine.StringP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go new file mode 100644 index 0000000..fa7bc60 --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_array.go @@ -0,0 +1,103 @@ +package pflag + +// -- stringArray Value +type stringArrayValue struct { + value *[]string + changed bool +} + +func newStringArrayValue(val []string, p *[]string) *stringArrayValue { + ssv := new(stringArrayValue) + ssv.value = p + *ssv.value = val + return ssv +} + +func (s *stringArrayValue) Set(val string) error { + if !s.changed { + *s.value = []string{val} + s.changed = true + } else { + *s.value = append(*s.value, val) + } + return nil +} + +func (s *stringArrayValue) Type() string { + return "stringArray" +} + +func (s *stringArrayValue) String() string { + str, _ := writeAsCSV(*s.value) + return "[" + str + "]" +} + +func stringArrayConv(sval string) (interface{}, error) { + sval = sval[1 : len(sval)-1] + // An empty string would cause a array with one (empty) string + if len(sval) == 0 { + return []string{}, nil + } + return readAsCSV(sval) +} + +// GetStringArray return the []string value of a flag with the given name +func (f *FlagSet) GetStringArray(name string) ([]string, error) { + val, err := f.getFlagType(name, "stringArray", stringArrayConv) + if err != nil { + return []string{}, err + } + return val.([]string), nil +} + +// StringArrayVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the values of the multiple flags. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) { + f.VarP(newStringArrayValue(value, p), name, "", usage) +} + +// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { + f.VarP(newStringArrayValue(value, p), name, shorthand, usage) +} + +// StringArrayVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func StringArrayVar(p *[]string, name string, value []string, usage string) { + CommandLine.VarP(newStringArrayValue(value, p), name, "", usage) +} + +// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. +func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { + CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage) +} + +// StringArray defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string { + p := []string{} + f.StringArrayVarP(&p, name, "", value, usage) + return &p +} + +// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string { + p := []string{} + f.StringArrayVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringArray defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma. Use a StringSlice for that. +func StringArray(name string, value []string, usage string) *[]string { + return CommandLine.StringArrayP(name, "", value, usage) +} + +// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. +func StringArrayP(name, shorthand string, value []string, usage string) *[]string { + return CommandLine.StringArrayP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go new file mode 100644 index 0000000..0cd3ccc --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_slice.go @@ -0,0 +1,149 @@ +package pflag + +import ( + "bytes" + "encoding/csv" + "strings" +) + +// -- stringSlice Value +type stringSliceValue struct { + value *[]string + changed bool +} + +func newStringSliceValue(val []string, p *[]string) *stringSliceValue { + ssv := new(stringSliceValue) + ssv.value = p + *ssv.value = val + return ssv +} + +func readAsCSV(val string) ([]string, error) { + if val == "" { + return []string{}, nil + } + stringReader := strings.NewReader(val) + csvReader := csv.NewReader(stringReader) + return csvReader.Read() +} + +func writeAsCSV(vals []string) (string, error) { + b := &bytes.Buffer{} + w := csv.NewWriter(b) + err := w.Write(vals) + if err != nil { + return "", err + } + w.Flush() + return strings.TrimSuffix(b.String(), "\n"), nil +} + +func (s *stringSliceValue) Set(val string) error { + v, err := readAsCSV(val) + if err != nil { + return err + } + if !s.changed { + *s.value = v + } else { + *s.value = append(*s.value, v...) + } + s.changed = true + return nil +} + +func (s *stringSliceValue) Type() string { + return "stringSlice" +} + +func (s *stringSliceValue) String() string { + str, _ := writeAsCSV(*s.value) + return "[" + str + "]" +} + +func stringSliceConv(sval string) (interface{}, error) { + sval = sval[1 : len(sval)-1] + // An empty string would cause a slice with one (empty) string + if len(sval) == 0 { + return []string{}, nil + } + return readAsCSV(sval) +} + +// GetStringSlice return the []string value of a flag with the given name +func (f *FlagSet) GetStringSlice(name string) ([]string, error) { + val, err := f.getFlagType(name, "stringSlice", stringSliceConv) + if err != nil { + return []string{}, err + } + return val.([]string), nil +} + +// StringSliceVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) { + f.VarP(newStringSliceValue(value, p), name, "", usage) +} + +// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { + f.VarP(newStringSliceValue(value, p), name, shorthand, usage) +} + +// StringSliceVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a []string variable in which to store the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func StringSliceVar(p *[]string, name string, value []string, usage string) { + CommandLine.VarP(newStringSliceValue(value, p), name, "", usage) +} + +// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. +func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { + CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage) +} + +// StringSlice defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string { + p := []string{} + f.StringSliceVarP(&p, name, "", value, usage) + return &p +} + +// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string { + p := []string{} + f.StringSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringSlice defines a string flag with specified name, default value, and usage string. +// The return value is the address of a []string variable that stores the value of the flag. +// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly. +// For example: +// --ss="v1,v2" -ss="v3" +// will result in +// []string{"v1", "v2", "v3"} +func StringSlice(name string, value []string, usage string) *[]string { + return CommandLine.StringSliceP(name, "", value, usage) +} + +// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. +func StringSliceP(name, shorthand string, value []string, usage string) *[]string { + return CommandLine.StringSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_to_int.go b/vendor/github.com/spf13/pflag/string_to_int.go new file mode 100644 index 0000000..5ceda39 --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_to_int.go @@ -0,0 +1,149 @@ +package pflag + +import ( + "bytes" + "fmt" + "strconv" + "strings" +) + +// -- stringToInt Value +type stringToIntValue struct { + value *map[string]int + changed bool +} + +func newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue { + ssv := new(stringToIntValue) + ssv.value = p + *ssv.value = val + return ssv +} + +// Format: a=1,b=2 +func (s *stringToIntValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make(map[string]int, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return fmt.Errorf("%s must be formatted as key=value", pair) + } + var err error + out[kv[0]], err = strconv.Atoi(kv[1]) + if err != nil { + return err + } + } + if !s.changed { + *s.value = out + } else { + for k, v := range out { + (*s.value)[k] = v + } + } + s.changed = true + return nil +} + +func (s *stringToIntValue) Type() string { + return "stringToInt" +} + +func (s *stringToIntValue) String() string { + var buf bytes.Buffer + i := 0 + for k, v := range *s.value { + if i > 0 { + buf.WriteRune(',') + } + buf.WriteString(k) + buf.WriteRune('=') + buf.WriteString(strconv.Itoa(v)) + i++ + } + return "[" + buf.String() + "]" +} + +func stringToIntConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // An empty string would cause an empty map + if len(val) == 0 { + return map[string]int{}, nil + } + ss := strings.Split(val, ",") + out := make(map[string]int, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return nil, fmt.Errorf("%s must be formatted as key=value", pair) + } + var err error + out[kv[0]], err = strconv.Atoi(kv[1]) + if err != nil { + return nil, err + } + } + return out, nil +} + +// GetStringToInt return the map[string]int value of a flag with the given name +func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) { + val, err := f.getFlagType(name, "stringToInt", stringToIntConv) + if err != nil { + return map[string]int{}, err + } + return val.(map[string]int), nil +} + +// StringToIntVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a map[string]int variable in which to store the values of the multiple flags. +// The value of each argument will not try to be separated by comma +func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) { + f.VarP(newStringToIntValue(value, p), name, "", usage) +} + +// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) { + f.VarP(newStringToIntValue(value, p), name, shorthand, usage) +} + +// StringToIntVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a map[string]int variable in which to store the value of the flag. +// The value of each argument will not try to be separated by comma +func StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) { + CommandLine.VarP(newStringToIntValue(value, p), name, "", usage) +} + +// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash. +func StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) { + CommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage) +} + +// StringToInt defines a string flag with specified name, default value, and usage string. +// The return value is the address of a map[string]int variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma +func (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int { + p := map[string]int{} + f.StringToIntVarP(&p, name, "", value, usage) + return &p +} + +// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int { + p := map[string]int{} + f.StringToIntVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringToInt defines a string flag with specified name, default value, and usage string. +// The return value is the address of a map[string]int variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma +func StringToInt(name string, value map[string]int, usage string) *map[string]int { + return CommandLine.StringToIntP(name, "", value, usage) +} + +// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash. +func StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int { + return CommandLine.StringToIntP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_to_string.go b/vendor/github.com/spf13/pflag/string_to_string.go new file mode 100644 index 0000000..890a01a --- /dev/null +++ b/vendor/github.com/spf13/pflag/string_to_string.go @@ -0,0 +1,160 @@ +package pflag + +import ( + "bytes" + "encoding/csv" + "fmt" + "strings" +) + +// -- stringToString Value +type stringToStringValue struct { + value *map[string]string + changed bool +} + +func newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue { + ssv := new(stringToStringValue) + ssv.value = p + *ssv.value = val + return ssv +} + +// Format: a=1,b=2 +func (s *stringToStringValue) Set(val string) error { + var ss []string + n := strings.Count(val, "=") + switch n { + case 0: + return fmt.Errorf("%s must be formatted as key=value", val) + case 1: + ss = append(ss, strings.Trim(val, `"`)) + default: + r := csv.NewReader(strings.NewReader(val)) + var err error + ss, err = r.Read() + if err != nil { + return err + } + } + + out := make(map[string]string, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return fmt.Errorf("%s must be formatted as key=value", pair) + } + out[kv[0]] = kv[1] + } + if !s.changed { + *s.value = out + } else { + for k, v := range out { + (*s.value)[k] = v + } + } + s.changed = true + return nil +} + +func (s *stringToStringValue) Type() string { + return "stringToString" +} + +func (s *stringToStringValue) String() string { + records := make([]string, 0, len(*s.value)>>1) + for k, v := range *s.value { + records = append(records, k+"="+v) + } + + var buf bytes.Buffer + w := csv.NewWriter(&buf) + if err := w.Write(records); err != nil { + panic(err) + } + w.Flush() + return "[" + strings.TrimSpace(buf.String()) + "]" +} + +func stringToStringConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // An empty string would cause an empty map + if len(val) == 0 { + return map[string]string{}, nil + } + r := csv.NewReader(strings.NewReader(val)) + ss, err := r.Read() + if err != nil { + return nil, err + } + out := make(map[string]string, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return nil, fmt.Errorf("%s must be formatted as key=value", pair) + } + out[kv[0]] = kv[1] + } + return out, nil +} + +// GetStringToString return the map[string]string value of a flag with the given name +func (f *FlagSet) GetStringToString(name string) (map[string]string, error) { + val, err := f.getFlagType(name, "stringToString", stringToStringConv) + if err != nil { + return map[string]string{}, err + } + return val.(map[string]string), nil +} + +// StringToStringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a map[string]string variable in which to store the values of the multiple flags. +// The value of each argument will not try to be separated by comma +func (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) { + f.VarP(newStringToStringValue(value, p), name, "", usage) +} + +// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) { + f.VarP(newStringToStringValue(value, p), name, shorthand, usage) +} + +// StringToStringVar defines a string flag with specified name, default value, and usage string. +// The argument p points to a map[string]string variable in which to store the value of the flag. +// The value of each argument will not try to be separated by comma +func StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) { + CommandLine.VarP(newStringToStringValue(value, p), name, "", usage) +} + +// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash. +func StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) { + CommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage) +} + +// StringToString defines a string flag with specified name, default value, and usage string. +// The return value is the address of a map[string]string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma +func (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string { + p := map[string]string{} + f.StringToStringVarP(&p, name, "", value, usage) + return &p +} + +// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string { + p := map[string]string{} + f.StringToStringVarP(&p, name, shorthand, value, usage) + return &p +} + +// StringToString defines a string flag with specified name, default value, and usage string. +// The return value is the address of a map[string]string variable that stores the value of the flag. +// The value of each argument will not try to be separated by comma +func StringToString(name string, value map[string]string, usage string) *map[string]string { + return CommandLine.StringToStringP(name, "", value, usage) +} + +// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash. +func StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string { + return CommandLine.StringToStringP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go new file mode 100644 index 0000000..dcbc2b7 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint Value +type uintValue uint + +func newUintValue(val uint, p *uint) *uintValue { + *p = val + return (*uintValue)(p) +} + +func (i *uintValue) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 64) + *i = uintValue(v) + return err +} + +func (i *uintValue) Type() string { + return "uint" +} + +func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uintConv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 0) + if err != nil { + return 0, err + } + return uint(v), nil +} + +// GetUint return the uint value of a flag with the given name +func (f *FlagSet) GetUint(name string) (uint, error) { + val, err := f.getFlagType(name, "uint", uintConv) + if err != nil { + return 0, err + } + return val.(uint), nil +} + +// UintVar defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) { + f.VarP(newUintValue(value, p), name, "", usage) +} + +// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) { + f.VarP(newUintValue(value, p), name, shorthand, usage) +} + +// UintVar defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func UintVar(p *uint, name string, value uint, usage string) { + CommandLine.VarP(newUintValue(value, p), name, "", usage) +} + +// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. +func UintVarP(p *uint, name, shorthand string, value uint, usage string) { + CommandLine.VarP(newUintValue(value, p), name, shorthand, usage) +} + +// Uint defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func (f *FlagSet) Uint(name string, value uint, usage string) *uint { + p := new(uint) + f.UintVarP(p, name, "", value, usage) + return p +} + +// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint { + p := new(uint) + f.UintVarP(p, name, shorthand, value, usage) + return p +} + +// Uint defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func Uint(name string, value uint, usage string) *uint { + return CommandLine.UintP(name, "", value, usage) +} + +// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. +func UintP(name, shorthand string, value uint, usage string) *uint { + return CommandLine.UintP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go new file mode 100644 index 0000000..7e9914e --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint16.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint16 value +type uint16Value uint16 + +func newUint16Value(val uint16, p *uint16) *uint16Value { + *p = val + return (*uint16Value)(p) +} + +func (i *uint16Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 16) + *i = uint16Value(v) + return err +} + +func (i *uint16Value) Type() string { + return "uint16" +} + +func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint16Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 16) + if err != nil { + return 0, err + } + return uint16(v), nil +} + +// GetUint16 return the uint16 value of a flag with the given name +func (f *FlagSet) GetUint16(name string) (uint16, error) { + val, err := f.getFlagType(name, "uint16", uint16Conv) + if err != nil { + return 0, err + } + return val.(uint16), nil +} + +// Uint16Var defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) { + f.VarP(newUint16Value(value, p), name, "", usage) +} + +// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { + f.VarP(newUint16Value(value, p), name, shorthand, usage) +} + +// Uint16Var defines a uint flag with specified name, default value, and usage string. +// The argument p points to a uint variable in which to store the value of the flag. +func Uint16Var(p *uint16, name string, value uint16, usage string) { + CommandLine.VarP(newUint16Value(value, p), name, "", usage) +} + +// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. +func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { + CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage) +} + +// Uint16 defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 { + p := new(uint16) + f.Uint16VarP(p, name, "", value, usage) + return p +} + +// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 { + p := new(uint16) + f.Uint16VarP(p, name, shorthand, value, usage) + return p +} + +// Uint16 defines a uint flag with specified name, default value, and usage string. +// The return value is the address of a uint variable that stores the value of the flag. +func Uint16(name string, value uint16, usage string) *uint16 { + return CommandLine.Uint16P(name, "", value, usage) +} + +// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. +func Uint16P(name, shorthand string, value uint16, usage string) *uint16 { + return CommandLine.Uint16P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go new file mode 100644 index 0000000..d802453 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint32.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint32 value +type uint32Value uint32 + +func newUint32Value(val uint32, p *uint32) *uint32Value { + *p = val + return (*uint32Value)(p) +} + +func (i *uint32Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 32) + *i = uint32Value(v) + return err +} + +func (i *uint32Value) Type() string { + return "uint32" +} + +func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint32Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 32) + if err != nil { + return 0, err + } + return uint32(v), nil +} + +// GetUint32 return the uint32 value of a flag with the given name +func (f *FlagSet) GetUint32(name string) (uint32, error) { + val, err := f.getFlagType(name, "uint32", uint32Conv) + if err != nil { + return 0, err + } + return val.(uint32), nil +} + +// Uint32Var defines a uint32 flag with specified name, default value, and usage string. +// The argument p points to a uint32 variable in which to store the value of the flag. +func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) { + f.VarP(newUint32Value(value, p), name, "", usage) +} + +// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { + f.VarP(newUint32Value(value, p), name, shorthand, usage) +} + +// Uint32Var defines a uint32 flag with specified name, default value, and usage string. +// The argument p points to a uint32 variable in which to store the value of the flag. +func Uint32Var(p *uint32, name string, value uint32, usage string) { + CommandLine.VarP(newUint32Value(value, p), name, "", usage) +} + +// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. +func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { + CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage) +} + +// Uint32 defines a uint32 flag with specified name, default value, and usage string. +// The return value is the address of a uint32 variable that stores the value of the flag. +func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 { + p := new(uint32) + f.Uint32VarP(p, name, "", value, usage) + return p +} + +// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 { + p := new(uint32) + f.Uint32VarP(p, name, shorthand, value, usage) + return p +} + +// Uint32 defines a uint32 flag with specified name, default value, and usage string. +// The return value is the address of a uint32 variable that stores the value of the flag. +func Uint32(name string, value uint32, usage string) *uint32 { + return CommandLine.Uint32P(name, "", value, usage) +} + +// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. +func Uint32P(name, shorthand string, value uint32, usage string) *uint32 { + return CommandLine.Uint32P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go new file mode 100644 index 0000000..f62240f --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint64.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint64 Value +type uint64Value uint64 + +func newUint64Value(val uint64, p *uint64) *uint64Value { + *p = val + return (*uint64Value)(p) +} + +func (i *uint64Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 64) + *i = uint64Value(v) + return err +} + +func (i *uint64Value) Type() string { + return "uint64" +} + +func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint64Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 64) + if err != nil { + return 0, err + } + return uint64(v), nil +} + +// GetUint64 return the uint64 value of a flag with the given name +func (f *FlagSet) GetUint64(name string) (uint64, error) { + val, err := f.getFlagType(name, "uint64", uint64Conv) + if err != nil { + return 0, err + } + return val.(uint64), nil +} + +// Uint64Var defines a uint64 flag with specified name, default value, and usage string. +// The argument p points to a uint64 variable in which to store the value of the flag. +func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) { + f.VarP(newUint64Value(value, p), name, "", usage) +} + +// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { + f.VarP(newUint64Value(value, p), name, shorthand, usage) +} + +// Uint64Var defines a uint64 flag with specified name, default value, and usage string. +// The argument p points to a uint64 variable in which to store the value of the flag. +func Uint64Var(p *uint64, name string, value uint64, usage string) { + CommandLine.VarP(newUint64Value(value, p), name, "", usage) +} + +// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. +func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { + CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage) +} + +// Uint64 defines a uint64 flag with specified name, default value, and usage string. +// The return value is the address of a uint64 variable that stores the value of the flag. +func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 { + p := new(uint64) + f.Uint64VarP(p, name, "", value, usage) + return p +} + +// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 { + p := new(uint64) + f.Uint64VarP(p, name, shorthand, value, usage) + return p +} + +// Uint64 defines a uint64 flag with specified name, default value, and usage string. +// The return value is the address of a uint64 variable that stores the value of the flag. +func Uint64(name string, value uint64, usage string) *uint64 { + return CommandLine.Uint64P(name, "", value, usage) +} + +// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. +func Uint64P(name, shorthand string, value uint64, usage string) *uint64 { + return CommandLine.Uint64P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go new file mode 100644 index 0000000..bb0e83c --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint8.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- uint8 Value +type uint8Value uint8 + +func newUint8Value(val uint8, p *uint8) *uint8Value { + *p = val + return (*uint8Value)(p) +} + +func (i *uint8Value) Set(s string) error { + v, err := strconv.ParseUint(s, 0, 8) + *i = uint8Value(v) + return err +} + +func (i *uint8Value) Type() string { + return "uint8" +} + +func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) } + +func uint8Conv(sval string) (interface{}, error) { + v, err := strconv.ParseUint(sval, 0, 8) + if err != nil { + return 0, err + } + return uint8(v), nil +} + +// GetUint8 return the uint8 value of a flag with the given name +func (f *FlagSet) GetUint8(name string) (uint8, error) { + val, err := f.getFlagType(name, "uint8", uint8Conv) + if err != nil { + return 0, err + } + return val.(uint8), nil +} + +// Uint8Var defines a uint8 flag with specified name, default value, and usage string. +// The argument p points to a uint8 variable in which to store the value of the flag. +func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) { + f.VarP(newUint8Value(value, p), name, "", usage) +} + +// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { + f.VarP(newUint8Value(value, p), name, shorthand, usage) +} + +// Uint8Var defines a uint8 flag with specified name, default value, and usage string. +// The argument p points to a uint8 variable in which to store the value of the flag. +func Uint8Var(p *uint8, name string, value uint8, usage string) { + CommandLine.VarP(newUint8Value(value, p), name, "", usage) +} + +// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. +func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { + CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage) +} + +// Uint8 defines a uint8 flag with specified name, default value, and usage string. +// The return value is the address of a uint8 variable that stores the value of the flag. +func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 { + p := new(uint8) + f.Uint8VarP(p, name, "", value, usage) + return p +} + +// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 { + p := new(uint8) + f.Uint8VarP(p, name, shorthand, value, usage) + return p +} + +// Uint8 defines a uint8 flag with specified name, default value, and usage string. +// The return value is the address of a uint8 variable that stores the value of the flag. +func Uint8(name string, value uint8, usage string) *uint8 { + return CommandLine.Uint8P(name, "", value, usage) +} + +// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. +func Uint8P(name, shorthand string, value uint8, usage string) *uint8 { + return CommandLine.Uint8P(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/uint_slice.go b/vendor/github.com/spf13/pflag/uint_slice.go new file mode 100644 index 0000000..edd94c6 --- /dev/null +++ b/vendor/github.com/spf13/pflag/uint_slice.go @@ -0,0 +1,126 @@ +package pflag + +import ( + "fmt" + "strconv" + "strings" +) + +// -- uintSlice Value +type uintSliceValue struct { + value *[]uint + changed bool +} + +func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue { + uisv := new(uintSliceValue) + uisv.value = p + *uisv.value = val + return uisv +} + +func (s *uintSliceValue) Set(val string) error { + ss := strings.Split(val, ",") + out := make([]uint, len(ss)) + for i, d := range ss { + u, err := strconv.ParseUint(d, 10, 0) + if err != nil { + return err + } + out[i] = uint(u) + } + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + s.changed = true + return nil +} + +func (s *uintSliceValue) Type() string { + return "uintSlice" +} + +func (s *uintSliceValue) String() string { + out := make([]string, len(*s.value)) + for i, d := range *s.value { + out[i] = fmt.Sprintf("%d", d) + } + return "[" + strings.Join(out, ",") + "]" +} + +func uintSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Empty string would cause a slice with one (empty) entry + if len(val) == 0 { + return []uint{}, nil + } + ss := strings.Split(val, ",") + out := make([]uint, len(ss)) + for i, d := range ss { + u, err := strconv.ParseUint(d, 10, 0) + if err != nil { + return nil, err + } + out[i] = uint(u) + } + return out, nil +} + +// GetUintSlice returns the []uint value of a flag with the given name. +func (f *FlagSet) GetUintSlice(name string) ([]uint, error) { + val, err := f.getFlagType(name, "uintSlice", uintSliceConv) + if err != nil { + return []uint{}, err + } + return val.([]uint), nil +} + +// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string. +// The argument p points to a []uint variable in which to store the value of the flag. +func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) { + f.VarP(newUintSliceValue(value, p), name, "", usage) +} + +// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { + f.VarP(newUintSliceValue(value, p), name, shorthand, usage) +} + +// UintSliceVar defines a uint[] flag with specified name, default value, and usage string. +// The argument p points to a uint[] variable in which to store the value of the flag. +func UintSliceVar(p *[]uint, name string, value []uint, usage string) { + CommandLine.VarP(newUintSliceValue(value, p), name, "", usage) +} + +// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash. +func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { + CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage) +} + +// UintSlice defines a []uint flag with specified name, default value, and usage string. +// The return value is the address of a []uint variable that stores the value of the flag. +func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint { + p := []uint{} + f.UintSliceVarP(&p, name, "", value, usage) + return &p +} + +// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { + p := []uint{} + f.UintSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// UintSlice defines a []uint flag with specified name, default value, and usage string. +// The return value is the address of a []uint variable that stores the value of the flag. +func UintSlice(name string, value []uint, usage string) *[]uint { + return CommandLine.UintSliceP(name, "", value, usage) +} + +// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. +func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { + return CommandLine.UintSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/viper/.editorconfig b/vendor/github.com/spf13/viper/.editorconfig new file mode 100644 index 0000000..63afcbc --- /dev/null +++ b/vendor/github.com/spf13/viper/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.go] +indent_style = tab + +[{Makefile, *.mk}] +indent_style = tab diff --git a/vendor/github.com/spf13/viper/.gitignore b/vendor/github.com/spf13/viper/.gitignore new file mode 100644 index 0000000..8962508 --- /dev/null +++ b/vendor/github.com/spf13/viper/.gitignore @@ -0,0 +1,5 @@ +/.idea/ +/bin/ +/build/ +/var/ +/vendor/ diff --git a/vendor/github.com/spf13/viper/.golangci.yml b/vendor/github.com/spf13/viper/.golangci.yml new file mode 100644 index 0000000..a0755ce --- /dev/null +++ b/vendor/github.com/spf13/viper/.golangci.yml @@ -0,0 +1,27 @@ +linters-settings: + golint: + min-confidence: 0.1 + goimports: + local-prefixes: github.com/spf13/viper + +linters: + enable-all: true + disable: + - funlen + - maligned + + # TODO: fix me + - wsl + - gochecknoinits + - gosimple + - gochecknoglobals + - errcheck + - lll + - godox + - scopelint + - gocyclo + - gocognit + - gocritic + +service: + golangci-lint-version: 1.21.x diff --git a/vendor/github.com/spf13/viper/LICENSE b/vendor/github.com/spf13/viper/LICENSE new file mode 100644 index 0000000..4527efb --- /dev/null +++ b/vendor/github.com/spf13/viper/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Steve Francia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/spf13/viper/Makefile b/vendor/github.com/spf13/viper/Makefile new file mode 100644 index 0000000..1c2cab0 --- /dev/null +++ b/vendor/github.com/spf13/viper/Makefile @@ -0,0 +1,76 @@ +# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html + +OS = $(shell uname | tr A-Z a-z) +export PATH := $(abspath bin/):${PATH} + +# Build variables +BUILD_DIR ?= build +export CGO_ENABLED ?= 0 +export GOOS = $(shell go env GOOS) +ifeq (${VERBOSE}, 1) +ifeq ($(filter -v,${GOARGS}),) + GOARGS += -v +endif +TEST_FORMAT = short-verbose +endif + +# Dependency versions +GOTESTSUM_VERSION = 0.4.0 +GOLANGCI_VERSION = 1.21.0 + +# Add the ability to override some variables +# Use with care +-include override.mk + +.PHONY: clear +clear: ## Clear the working area and the project + rm -rf bin/ + +.PHONY: check +check: test lint ## Run tests and linters + +bin/gotestsum: bin/gotestsum-${GOTESTSUM_VERSION} + @ln -sf gotestsum-${GOTESTSUM_VERSION} bin/gotestsum +bin/gotestsum-${GOTESTSUM_VERSION}: + @mkdir -p bin + curl -L https://github.com/gotestyourself/gotestsum/releases/download/v${GOTESTSUM_VERSION}/gotestsum_${GOTESTSUM_VERSION}_${OS}_amd64.tar.gz | tar -zOxf - gotestsum > ./bin/gotestsum-${GOTESTSUM_VERSION} && chmod +x ./bin/gotestsum-${GOTESTSUM_VERSION} + +TEST_PKGS ?= ./... +.PHONY: test +test: TEST_FORMAT ?= short +test: SHELL = /bin/bash +test: export CGO_ENABLED=1 +test: bin/gotestsum ## Run tests + @mkdir -p ${BUILD_DIR} + bin/gotestsum --no-summary=skipped --junitfile ${BUILD_DIR}/coverage.xml --format ${TEST_FORMAT} -- -race -coverprofile=${BUILD_DIR}/coverage.txt -covermode=atomic $(filter-out -v,${GOARGS}) $(if ${TEST_PKGS},${TEST_PKGS},./...) + +bin/golangci-lint: bin/golangci-lint-${GOLANGCI_VERSION} + @ln -sf golangci-lint-${GOLANGCI_VERSION} bin/golangci-lint +bin/golangci-lint-${GOLANGCI_VERSION}: + @mkdir -p bin + curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ./bin/ v${GOLANGCI_VERSION} + @mv bin/golangci-lint $@ + +.PHONY: lint +lint: bin/golangci-lint ## Run linter + bin/golangci-lint run + +.PHONY: fix +fix: bin/golangci-lint ## Fix lint violations + bin/golangci-lint run --fix + +# Add custom targets here +-include custom.mk + +.PHONY: list +list: ## List all make targets + @${MAKE} -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort + +.PHONY: help +.DEFAULT_GOAL := help +help: + @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +# Variable outputting/exporting rules +var-%: ; @echo $($*) +varexport-%: ; @echo $*=$($*) diff --git a/vendor/github.com/spf13/viper/README.md b/vendor/github.com/spf13/viper/README.md new file mode 100644 index 0000000..dfd8034 --- /dev/null +++ b/vendor/github.com/spf13/viper/README.md @@ -0,0 +1,806 @@ +![Viper](.github/logo.png?raw=true) + +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go#configuration) + +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/spf13/viper/CI?style=flat-square)](https://github.com/spf13/viper/actions?query=workflow%3ACI) +[![Join the chat at https://gitter.im/spf13/viper](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/spf13/viper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/viper?style=flat-square)](https://goreportcard.com/report/github.com/spf13/viper) +[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/mod/github.com/spf13/viper) + +**Go configuration with fangs!** + +Many Go projects are built using Viper including: + +* [Hugo](http://gohugo.io) +* [EMC RexRay](http://rexray.readthedocs.org/en/stable/) +* [Imgur’s Incus](https://github.com/Imgur/incus) +* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) +* [Docker Notary](https://github.com/docker/Notary) +* [BloomApi](https://www.bloomapi.com/) +* [doctl](https://github.com/digitalocean/doctl) +* [Clairctl](https://github.com/jgsqware/clairctl) +* [Mercure](https://mercure.rocks) + + +## Install + +```console +go get github.com/spf13/viper +``` + + +## What is Viper? + +Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed +to work within an application, and can handle all types of configuration needs +and formats. It supports: + +* setting defaults +* reading from JSON, TOML, YAML, HCL, envfile and Java properties config files +* live watching and re-reading of config files (optional) +* reading from environment variables +* reading from remote config systems (etcd or Consul), and watching changes +* reading from command line flags +* reading from buffer +* setting explicit values + +Viper can be thought of as a registry for all of your applications configuration needs. + + +## Why Viper? + +When building a modern application, you don’t want to worry about +configuration file formats; you want to focus on building awesome software. +Viper is here to help with that. + +Viper does the following for you: + +1. Find, load, and unmarshal a configuration file in JSON, TOML, YAML, HCL, INI, envfile or Java properties formats. +2. Provide a mechanism to set default values for your different configuration options. +3. Provide a mechanism to set override values for options specified through command line flags. +4. Provide an alias system to easily rename parameters without breaking existing code. +5. Make it easy to tell the difference between when a user has provided a command line or config file which is the same as the default. + +Viper uses the following precedence order. Each item takes precedence over the item below it: + + * explicit call to `Set` + * flag + * env + * config + * key/value store + * default + +**Important:** Viper configuration keys are case insensitive. +There are ongoing discussions about making that optional. + + +## Putting Values into Viper + +### Establishing Defaults + +A good configuration system will support default values. A default value is not +required for a key, but it’s useful in the event that a key hasn't been set via +config file, environment variable, remote configuration or flag. + +Examples: + +```go +viper.SetDefault("ContentDir", "content") +viper.SetDefault("LayoutDir", "layouts") +viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"}) +``` + +### Reading Config Files + +Viper requires minimal configuration so it knows where to look for config files. +Viper supports JSON, TOML, YAML, HCL, INI, envfile and Java Properties files. Viper can search multiple paths, but +currently a single Viper instance only supports a single configuration file. +Viper does not default to any configuration search paths leaving defaults decision +to an application. + +Here is an example of how to use Viper to search for and read a configuration file. +None of the specific paths are required, but at least one path should be provided +where a configuration file is expected. + +```go +viper.SetConfigName("config") // name of config file (without extension) +viper.SetConfigType("yaml") // REQUIRED if the config file does not have the extension in the name +viper.AddConfigPath("/etc/appname/") // path to look for the config file in +viper.AddConfigPath("$HOME/.appname") // call multiple times to add many search paths +viper.AddConfigPath(".") // optionally look for config in the working directory +err := viper.ReadInConfig() // Find and read the config file +if err != nil { // Handle errors reading the config file + panic(fmt.Errorf("Fatal error config file: %s \n", err)) +} +``` + +You can handle the specific case where no config file is found like this: + +```go +if err := viper.ReadInConfig(); err != nil { + if _, ok := err.(viper.ConfigFileNotFoundError); ok { + // Config file not found; ignore error if desired + } else { + // Config file was found but another error was produced + } +} + +// Config file found and successfully parsed +``` + +*NOTE [since 1.6]:* You can also have a file without an extension and specify the format programmaticaly. For those configuration files that lie in the home of the user without any extension like `.bashrc` + +### Writing Config Files + +Reading from config files is useful, but at times you want to store all modifications made at run time. +For that, a bunch of commands are available, each with its own purpose: + +* WriteConfig - writes the current viper configuration to the predefined path, if exists. Errors if no predefined path. Will overwrite the current config file, if it exists. +* SafeWriteConfig - writes the current viper configuration to the predefined path. Errors if no predefined path. Will not overwrite the current config file, if it exists. +* WriteConfigAs - writes the current viper configuration to the given filepath. Will overwrite the given file, if it exists. +* SafeWriteConfigAs - writes the current viper configuration to the given filepath. Will not overwrite the given file, if it exists. + +As a rule of the thumb, everything marked with safe won't overwrite any file, but just create if not existent, whilst the default behavior is to create or truncate. + +A small examples section: + +```go +viper.WriteConfig() // writes current config to predefined path set by 'viper.AddConfigPath()' and 'viper.SetConfigName' +viper.SafeWriteConfig() +viper.WriteConfigAs("/path/to/my/.config") +viper.SafeWriteConfigAs("/path/to/my/.config") // will error since it has already been written +viper.SafeWriteConfigAs("/path/to/my/.other_config") +``` + +### Watching and re-reading config files + +Viper supports the ability to have your application live read a config file while running. + +Gone are the days of needing to restart a server to have a config take effect, +viper powered applications can read an update to a config file while running and +not miss a beat. + +Simply tell the viper instance to watchConfig. +Optionally you can provide a function for Viper to run each time a change occurs. + +**Make sure you add all of the configPaths prior to calling `WatchConfig()`** + +```go +viper.WatchConfig() +viper.OnConfigChange(func(e fsnotify.Event) { + fmt.Println("Config file changed:", e.Name) +}) +``` + +### Reading Config from io.Reader + +Viper predefines many configuration sources such as files, environment +variables, flags, and remote K/V store, but you are not bound to them. You can +also implement your own required configuration source and feed it to viper. + +```go +viper.SetConfigType("yaml") // or viper.SetConfigType("YAML") + +// any approach to require this configuration into your program. +var yamlExample = []byte(` +Hacker: true +name: steve +hobbies: +- skateboarding +- snowboarding +- go +clothing: + jacket: leather + trousers: denim +age: 35 +eyes : brown +beard: true +`) + +viper.ReadConfig(bytes.NewBuffer(yamlExample)) + +viper.Get("name") // this would be "steve" +``` + +### Setting Overrides + +These could be from a command line flag, or from your own application logic. + +```go +viper.Set("Verbose", true) +viper.Set("LogFile", LogFile) +``` + +### Registering and Using Aliases + +Aliases permit a single value to be referenced by multiple keys + +```go +viper.RegisterAlias("loud", "Verbose") + +viper.Set("verbose", true) // same result as next line +viper.Set("loud", true) // same result as prior line + +viper.GetBool("loud") // true +viper.GetBool("verbose") // true +``` + +### Working with Environment Variables + +Viper has full support for environment variables. This enables 12 factor +applications out of the box. There are five methods that exist to aid working +with ENV: + + * `AutomaticEnv()` + * `BindEnv(string...) : error` + * `SetEnvPrefix(string)` + * `SetEnvKeyReplacer(string...) *strings.Replacer` + * `AllowEmptyEnv(bool)` + +_When working with ENV variables, it’s important to recognize that Viper +treats ENV variables as case sensitive._ + +Viper provides a mechanism to try to ensure that ENV variables are unique. By +using `SetEnvPrefix`, you can tell Viper to use a prefix while reading from +the environment variables. Both `BindEnv` and `AutomaticEnv` will use this +prefix. + +`BindEnv` takes one or two parameters. The first parameter is the key name, the +second is the name of the environment variable. The name of the environment +variable is case sensitive. If the ENV variable name is not provided, then +Viper will automatically assume that the ENV variable matches the following format: prefix + "_" + the key name in ALL CAPS. When you explicitly provide the ENV variable name (the second parameter), +it **does not** automatically add the prefix. For example if the second parameter is "id", +Viper will look for the ENV variable "ID". + +One important thing to recognize when working with ENV variables is that the +value will be read each time it is accessed. Viper does not fix the value when +the `BindEnv` is called. + +`AutomaticEnv` is a powerful helper especially when combined with +`SetEnvPrefix`. When called, Viper will check for an environment variable any +time a `viper.Get` request is made. It will apply the following rules. It will +check for a environment variable with a name matching the key uppercased and +prefixed with the `EnvPrefix` if set. + +`SetEnvKeyReplacer` allows you to use a `strings.Replacer` object to rewrite Env +keys to an extent. This is useful if you want to use `-` or something in your +`Get()` calls, but want your environmental variables to use `_` delimiters. An +example of using it can be found in `viper_test.go`. + +Alternatively, you can use `EnvKeyReplacer` with `NewWithOptions` factory function. +Unlike `SetEnvKeyReplacer`, it accepts a `StringReplacer` interface allowing you to write custom string replacing logic. + +By default empty environment variables are considered unset and will fall back to +the next configuration source. To treat empty environment variables as set, use +the `AllowEmptyEnv` method. + +#### Env example + +```go +SetEnvPrefix("spf") // will be uppercased automatically +BindEnv("id") + +os.Setenv("SPF_ID", "13") // typically done outside of the app + +id := Get("id") // 13 +``` + +### Working with Flags + +Viper has the ability to bind to flags. Specifically, Viper supports `Pflags` +as used in the [Cobra](https://github.com/spf13/cobra) library. + +Like `BindEnv`, the value is not set when the binding method is called, but when +it is accessed. This means you can bind as early as you want, even in an +`init()` function. + +For individual flags, the `BindPFlag()` method provides this functionality. + +Example: + +```go +serverCmd.Flags().Int("port", 1138, "Port to run Application server on") +viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) +``` + +You can also bind an existing set of pflags (pflag.FlagSet): + +Example: + +```go +pflag.Int("flagname", 1234, "help message for flagname") + +pflag.Parse() +viper.BindPFlags(pflag.CommandLine) + +i := viper.GetInt("flagname") // retrieve values from viper instead of pflag +``` + +The use of [pflag](https://github.com/spf13/pflag/) in Viper does not preclude +the use of other packages that use the [flag](https://golang.org/pkg/flag/) +package from the standard library. The pflag package can handle the flags +defined for the flag package by importing these flags. This is accomplished +by a calling a convenience function provided by the pflag package called +AddGoFlagSet(). + +Example: + +```go +package main + +import ( + "flag" + "github.com/spf13/pflag" +) + +func main() { + + // using standard library "flag" package + flag.Int("flagname", 1234, "help message for flagname") + + pflag.CommandLine.AddGoFlagSet(flag.CommandLine) + pflag.Parse() + viper.BindPFlags(pflag.CommandLine) + + i := viper.GetInt("flagname") // retrieve value from viper + + ... +} +``` + +#### Flag interfaces + +Viper provides two Go interfaces to bind other flag systems if you don’t use `Pflags`. + +`FlagValue` represents a single flag. This is a very simple example on how to implement this interface: + +```go +type myFlag struct {} +func (f myFlag) HasChanged() bool { return false } +func (f myFlag) Name() string { return "my-flag-name" } +func (f myFlag) ValueString() string { return "my-flag-value" } +func (f myFlag) ValueType() string { return "string" } +``` + +Once your flag implements this interface, you can simply tell Viper to bind it: + +```go +viper.BindFlagValue("my-flag-name", myFlag{}) +``` + +`FlagValueSet` represents a group of flags. This is a very simple example on how to implement this interface: + +```go +type myFlagSet struct { + flags []myFlag +} + +func (f myFlagSet) VisitAll(fn func(FlagValue)) { + for _, flag := range flags { + fn(flag) + } +} +``` + +Once your flag set implements this interface, you can simply tell Viper to bind it: + +```go +fSet := myFlagSet{ + flags: []myFlag{myFlag{}, myFlag{}}, +} +viper.BindFlagValues("my-flags", fSet) +``` + +### Remote Key/Value Store Support + +To enable remote support in Viper, do a blank import of the `viper/remote` +package: + +`import _ "github.com/spf13/viper/remote"` + +Viper will read a config string (as JSON, TOML, YAML, HCL or envfile) retrieved from a path +in a Key/Value store such as etcd or Consul. These values take precedence over +default values, but are overridden by configuration values retrieved from disk, +flags, or environment variables. + +Viper uses [crypt](https://github.com/bketelsen/crypt) to retrieve +configuration from the K/V store, which means that you can store your +configuration values encrypted and have them automatically decrypted if you have +the correct gpg keyring. Encryption is optional. + +You can use remote configuration in conjunction with local configuration, or +independently of it. + +`crypt` has a command-line helper that you can use to put configurations in your +K/V store. `crypt` defaults to etcd on http://127.0.0.1:4001. + +```bash +$ go get github.com/bketelsen/crypt/bin/crypt +$ crypt set -plaintext /config/hugo.json /Users/hugo/settings/config.json +``` + +Confirm that your value was set: + +```bash +$ crypt get -plaintext /config/hugo.json +``` + +See the `crypt` documentation for examples of how to set encrypted values, or +how to use Consul. + +### Remote Key/Value Store Example - Unencrypted + +#### etcd +```go +viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001","/config/hugo.json") +viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" +err := viper.ReadRemoteConfig() +``` + +#### Consul +You need to set a key to Consul key/value storage with JSON value containing your desired config. +For example, create a Consul key/value store key `MY_CONSUL_KEY` with value: + +```json +{ + "port": 8080, + "hostname": "myhostname.com" +} +``` + +```go +viper.AddRemoteProvider("consul", "localhost:8500", "MY_CONSUL_KEY") +viper.SetConfigType("json") // Need to explicitly set this to json +err := viper.ReadRemoteConfig() + +fmt.Println(viper.Get("port")) // 8080 +fmt.Println(viper.Get("hostname")) // myhostname.com +``` + +#### Firestore + +```go +viper.AddRemoteProvider("firestore", "google-cloud-project-id", "collection/document") +viper.SetConfigType("json") // Config's format: "json", "toml", "yaml", "yml" +err := viper.ReadRemoteConfig() +``` + +Of course, you're allowed to use `SecureRemoteProvider` also + +### Remote Key/Value Store Example - Encrypted + +```go +viper.AddSecureRemoteProvider("etcd","http://127.0.0.1:4001","/config/hugo.json","/etc/secrets/mykeyring.gpg") +viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" +err := viper.ReadRemoteConfig() +``` + +### Watching Changes in etcd - Unencrypted + +```go +// alternatively, you can create a new viper instance. +var runtime_viper = viper.New() + +runtime_viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001", "/config/hugo.yml") +runtime_viper.SetConfigType("yaml") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv" + +// read from remote config the first time. +err := runtime_viper.ReadRemoteConfig() + +// unmarshal config +runtime_viper.Unmarshal(&runtime_conf) + +// open a goroutine to watch remote changes forever +go func(){ + for { + time.Sleep(time.Second * 5) // delay after each request + + // currently, only tested with etcd support + err := runtime_viper.WatchRemoteConfig() + if err != nil { + log.Errorf("unable to read remote config: %v", err) + continue + } + + // unmarshal new config into our runtime config struct. you can also use channel + // to implement a signal to notify the system of the changes + runtime_viper.Unmarshal(&runtime_conf) + } +}() +``` + +## Getting Values From Viper + +In Viper, there are a few ways to get a value depending on the value’s type. +The following functions and methods exist: + + * `Get(key string) : interface{}` + * `GetBool(key string) : bool` + * `GetFloat64(key string) : float64` + * `GetInt(key string) : int` + * `GetIntSlice(key string) : []int` + * `GetString(key string) : string` + * `GetStringMap(key string) : map[string]interface{}` + * `GetStringMapString(key string) : map[string]string` + * `GetStringSlice(key string) : []string` + * `GetTime(key string) : time.Time` + * `GetDuration(key string) : time.Duration` + * `IsSet(key string) : bool` + * `AllSettings() : map[string]interface{}` + +One important thing to recognize is that each Get function will return a zero +value if it’s not found. To check if a given key exists, the `IsSet()` method +has been provided. + +Example: +```go +viper.GetString("logfile") // case-insensitive Setting & Getting +if viper.GetBool("verbose") { + fmt.Println("verbose enabled") +} +``` +### Accessing nested keys + +The accessor methods also accept formatted paths to deeply nested keys. For +example, if the following JSON file is loaded: + +```json +{ + "host": { + "address": "localhost", + "port": 5799 + }, + "datastore": { + "metric": { + "host": "127.0.0.1", + "port": 3099 + }, + "warehouse": { + "host": "198.0.0.1", + "port": 2112 + } + } +} + +``` + +Viper can access a nested field by passing a `.` delimited path of keys: + +```go +GetString("datastore.metric.host") // (returns "127.0.0.1") +``` + +This obeys the precedence rules established above; the search for the path +will cascade through the remaining configuration registries until found. + +For example, given this configuration file, both `datastore.metric.host` and +`datastore.metric.port` are already defined (and may be overridden). If in addition +`datastore.metric.protocol` was defined in the defaults, Viper would also find it. + +However, if `datastore.metric` was overridden (by a flag, an environment variable, +the `Set()` method, …) with an immediate value, then all sub-keys of +`datastore.metric` become undefined, they are “shadowed” by the higher-priority +configuration level. + +Lastly, if there exists a key that matches the delimited key path, its value +will be returned instead. E.g. + +```json +{ + "datastore.metric.host": "0.0.0.0", + "host": { + "address": "localhost", + "port": 5799 + }, + "datastore": { + "metric": { + "host": "127.0.0.1", + "port": 3099 + }, + "warehouse": { + "host": "198.0.0.1", + "port": 2112 + } + } +} + +GetString("datastore.metric.host") // returns "0.0.0.0" +``` + +### Extract sub-tree + +Extract sub-tree from Viper. + +For example, `viper` represents: + +```json +app: + cache1: + max-items: 100 + item-size: 64 + cache2: + max-items: 200 + item-size: 80 +``` + +After executing: + +```go +subv := viper.Sub("app.cache1") +``` + +`subv` represents: + +```json +max-items: 100 +item-size: 64 +``` + +Suppose we have: + +```go +func NewCache(cfg *Viper) *Cache {...} +``` + +which creates a cache based on config information formatted as `subv`. +Now it’s easy to create these 2 caches separately as: + +```go +cfg1 := viper.Sub("app.cache1") +cache1 := NewCache(cfg1) + +cfg2 := viper.Sub("app.cache2") +cache2 := NewCache(cfg2) +``` + +### Unmarshaling + +You also have the option of Unmarshaling all or a specific value to a struct, map, +etc. + +There are two methods to do this: + + * `Unmarshal(rawVal interface{}) : error` + * `UnmarshalKey(key string, rawVal interface{}) : error` + +Example: + +```go +type config struct { + Port int + Name string + PathMap string `mapstructure:"path_map"` +} + +var C config + +err := viper.Unmarshal(&C) +if err != nil { + t.Fatalf("unable to decode into struct, %v", err) +} +``` + +If you want to unmarshal configuration where the keys themselves contain dot (the default key delimiter), +you have to change the delimiter: + +```go +v := viper.NewWithOptions(viper.KeyDelimiter("::")) + +v.SetDefault("chart::values", map[string]interface{}{ + "ingress": map[string]interface{}{ + "annotations": map[string]interface{}{ + "traefik.frontend.rule.type": "PathPrefix", + "traefik.ingress.kubernetes.io/ssl-redirect": "true", + }, + }, +}) + +type config struct { + Chart struct{ + Values map[string]interface{} + } +} + +var C config + +v.Unmarshal(&C) +``` + +Viper also supports unmarshaling into embedded structs: + +```go +/* +Example config: + +module: + enabled: true + token: 89h3f98hbwf987h3f98wenf89ehf +*/ +type config struct { + Module struct { + Enabled bool + + moduleConfig `mapstructure:",squash"` + } +} + +// moduleConfig could be in a module specific package +type moduleConfig struct { + Token string +} + +var C config + +err := viper.Unmarshal(&C) +if err != nil { + t.Fatalf("unable to decode into struct, %v", err) +} +``` + +Viper uses [github.com/mitchellh/mapstructure](https://github.com/mitchellh/mapstructure) under the hood for unmarshaling values which uses `mapstructure` tags by default. + +### Marshalling to string + +You may need to marshal all the settings held in viper into a string rather than write them to a file. +You can use your favorite format's marshaller with the config returned by `AllSettings()`. + +```go +import ( + yaml "gopkg.in/yaml.v2" + // ... +) + +func yamlStringSettings() string { + c := viper.AllSettings() + bs, err := yaml.Marshal(c) + if err != nil { + log.Fatalf("unable to marshal config to YAML: %v", err) + } + return string(bs) +} +``` + +## Viper or Vipers? + +Viper comes ready to use out of the box. There is no configuration or +initialization needed to begin using Viper. Since most applications will want +to use a single central repository for their configuration, the viper package +provides this. It is similar to a singleton. + +In all of the examples above, they demonstrate using viper in its singleton +style approach. + +### Working with multiple vipers + +You can also create many different vipers for use in your application. Each will +have its own unique set of configurations and values. Each can read from a +different config file, key value store, etc. All of the functions that viper +package supports are mirrored as methods on a viper. + +Example: + +```go +x := viper.New() +y := viper.New() + +x.SetDefault("ContentDir", "content") +y.SetDefault("ContentDir", "foobar") + +//... +``` + +When working with multiple vipers, it is up to the user to keep track of the +different vipers. + +## Q & A + +Q: Why is it called “Viper”? + +A: Viper is designed to be a [companion](http://en.wikipedia.org/wiki/Viper_(G.I._Joe)) +to [Cobra](https://github.com/spf13/cobra). While both can operate completely +independently, together they make a powerful pair to handle much of your +application foundation needs. + +Q: Why is it called “Cobra”? + +A: Is there a better name for a [commander](http://en.wikipedia.org/wiki/Cobra_Commander)? diff --git a/vendor/github.com/spf13/viper/flags.go b/vendor/github.com/spf13/viper/flags.go new file mode 100644 index 0000000..b5ddbf5 --- /dev/null +++ b/vendor/github.com/spf13/viper/flags.go @@ -0,0 +1,57 @@ +package viper + +import "github.com/spf13/pflag" + +// FlagValueSet is an interface that users can implement +// to bind a set of flags to viper. +type FlagValueSet interface { + VisitAll(fn func(FlagValue)) +} + +// FlagValue is an interface that users can implement +// to bind different flags to viper. +type FlagValue interface { + HasChanged() bool + Name() string + ValueString() string + ValueType() string +} + +// pflagValueSet is a wrapper around *pflag.ValueSet +// that implements FlagValueSet. +type pflagValueSet struct { + flags *pflag.FlagSet +} + +// VisitAll iterates over all *pflag.Flag inside the *pflag.FlagSet. +func (p pflagValueSet) VisitAll(fn func(flag FlagValue)) { + p.flags.VisitAll(func(flag *pflag.Flag) { + fn(pflagValue{flag}) + }) +} + +// pflagValue is a wrapper aroung *pflag.flag +// that implements FlagValue +type pflagValue struct { + flag *pflag.Flag +} + +// HasChanged returns whether the flag has changes or not. +func (p pflagValue) HasChanged() bool { + return p.flag.Changed +} + +// Name returns the name of the flag. +func (p pflagValue) Name() string { + return p.flag.Name +} + +// ValueString returns the value of the flag as a string. +func (p pflagValue) ValueString() string { + return p.flag.Value.String() +} + +// ValueType returns the type of the flag as a string. +func (p pflagValue) ValueType() string { + return p.flag.Value.Type() +} diff --git a/vendor/github.com/spf13/viper/go.mod b/vendor/github.com/spf13/viper/go.mod new file mode 100644 index 0000000..7d108dc --- /dev/null +++ b/vendor/github.com/spf13/viper/go.mod @@ -0,0 +1,40 @@ +module github.com/spf13/viper + +go 1.12 + +require ( + github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c + github.com/coreos/bbolt v1.3.2 // indirect + github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect + github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect + github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect + github.com/fsnotify/fsnotify v1.4.7 + github.com/gogo/protobuf v1.2.1 // indirect + github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect + github.com/gorilla/websocket v1.4.2 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect + github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.9.0 // indirect + github.com/hashicorp/hcl v1.0.0 + github.com/jonboulle/clockwork v0.1.0 // indirect + github.com/magiconair/properties v1.8.1 + github.com/mitchellh/mapstructure v1.1.2 + github.com/pelletier/go-toml v1.2.0 + github.com/prometheus/client_golang v0.9.3 // indirect + github.com/smartystreets/goconvey v1.6.4 // indirect + github.com/soheilhy/cmux v0.1.4 // indirect + github.com/spf13/afero v1.1.2 + github.com/spf13/cast v1.3.0 + github.com/spf13/jwalterweatherman v1.0.0 + github.com/spf13/pflag v1.0.3 + github.com/stretchr/testify v1.3.0 + github.com/subosito/gotenv v1.2.0 + github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect + github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect + go.etcd.io/bbolt v1.3.2 // indirect + go.uber.org/atomic v1.4.0 // indirect + go.uber.org/multierr v1.1.0 // indirect + go.uber.org/zap v1.10.0 // indirect + gopkg.in/ini.v1 v1.51.0 + gopkg.in/yaml.v2 v2.2.4 +) diff --git a/vendor/github.com/spf13/viper/go.sum b/vendor/github.com/spf13/viper/go.sum new file mode 100644 index 0000000..463aa7d --- /dev/null +++ b/vendor/github.com/spf13/viper/go.sum @@ -0,0 +1,388 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3 h1:AVXDdKsrtX33oR9fbCMu/+c1o8Ofjq6Ku/MInaLVg5Y= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1 h1:hL+ycaJpVE9M7nLoiXb/Pn10ENE2u+oddxbD8uu0ZVU= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0 h1:Kt+gOPPp2LEPWp8CSfxhsM8ik9CcyE/gYu+0r+RnZvM= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0 h1:9x7Bx0A9R5/M9jibeJeZWqjeVEIxYW9fZYqB9a70/bY= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1 h1:W9tAK3E57P75u0XLLR82LZyw8VpAnhmyTOxW9qzmyj8= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0 h1:VV2nUM3wwLLGh9lSABFgZMjInyUbJeaRSE64WuAIQ+4= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0 h1:bM6ZAFZmc/wPFaRDi0d5L7hGEZEx/2u+Tmr2evNHDiI= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024 h1:rBMNdlhTLzJjJSDIjNEXX1Pz3Hmwmz91v+zycvx9PJc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0 h1:vKb8ShqSby24Yrqr/yDYkuFz8d0WUjys40rvnGC8aR0= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136 h1:A1gGSx58LAGVHUUsOf7IiR0u8Xb6W51gRwfDBhkdcaw= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +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-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +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-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +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 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +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-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0 h1:HyfiK1WMnHj5FXFXatD+Qs1A/xC2Run6RzeW1SyHxpc= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +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= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384 h1:TFlARGu6Czu1z7q93HTxcP1P+/ZFC/IKythI5RzrnRg= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc h1:NCy3Ohtk6Iny5V/reW2Ktypo4zIpWBdRJ1uFMjBxdg8= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/vendor/github.com/spf13/viper/util.go b/vendor/github.com/spf13/viper/util.go new file mode 100644 index 0000000..cee6b24 --- /dev/null +++ b/vendor/github.com/spf13/viper/util.go @@ -0,0 +1,230 @@ +// Copyright © 2014 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +// Viper is a application configuration system. +// It believes that applications can be configured a variety of ways +// via flags, ENVIRONMENT variables, configuration files retrieved +// from the file system, or a remote key/value store. + +package viper + +import ( + "fmt" + "os" + "path/filepath" + "runtime" + "strings" + "unicode" + + "github.com/spf13/afero" + "github.com/spf13/cast" + jww "github.com/spf13/jwalterweatherman" +) + +// ConfigParseError denotes failing to parse configuration file. +type ConfigParseError struct { + err error +} + +// Error returns the formatted configuration error. +func (pe ConfigParseError) Error() string { + return fmt.Sprintf("While parsing config: %s", pe.err.Error()) +} + +// toCaseInsensitiveValue checks if the value is a map; +// if so, create a copy and lower-case the keys recursively. +func toCaseInsensitiveValue(value interface{}) interface{} { + switch v := value.(type) { + case map[interface{}]interface{}: + value = copyAndInsensitiviseMap(cast.ToStringMap(v)) + case map[string]interface{}: + value = copyAndInsensitiviseMap(v) + } + + return value +} + +// copyAndInsensitiviseMap behaves like insensitiviseMap, but creates a copy of +// any map it makes case insensitive. +func copyAndInsensitiviseMap(m map[string]interface{}) map[string]interface{} { + nm := make(map[string]interface{}) + + for key, val := range m { + lkey := strings.ToLower(key) + switch v := val.(type) { + case map[interface{}]interface{}: + nm[lkey] = copyAndInsensitiviseMap(cast.ToStringMap(v)) + case map[string]interface{}: + nm[lkey] = copyAndInsensitiviseMap(v) + default: + nm[lkey] = v + } + } + + return nm +} + +func insensitiviseMap(m map[string]interface{}) { + for key, val := range m { + switch val.(type) { + case map[interface{}]interface{}: + // nested map: cast and recursively insensitivise + val = cast.ToStringMap(val) + insensitiviseMap(val.(map[string]interface{})) + case map[string]interface{}: + // nested map: recursively insensitivise + insensitiviseMap(val.(map[string]interface{})) + } + + lower := strings.ToLower(key) + if key != lower { + // remove old key (not lower-cased) + delete(m, key) + } + // update map + m[lower] = val + } +} + +func absPathify(inPath string) string { + jww.INFO.Println("Trying to resolve absolute path to", inPath) + + if inPath == "$HOME" || strings.HasPrefix(inPath, "$HOME"+string(os.PathSeparator)) { + inPath = userHomeDir() + inPath[5:] + } + + if strings.HasPrefix(inPath, "$") { + end := strings.Index(inPath, string(os.PathSeparator)) + + var value, suffix string + if end == -1 { + value = os.Getenv(inPath[1:]) + } else { + value = os.Getenv(inPath[1:end]) + suffix = inPath[end:] + } + + inPath = value + suffix + } + + if filepath.IsAbs(inPath) { + return filepath.Clean(inPath) + } + + p, err := filepath.Abs(inPath) + if err == nil { + return filepath.Clean(p) + } + + jww.ERROR.Println("Couldn't discover absolute path") + jww.ERROR.Println(err) + return "" +} + +// Check if file Exists +func exists(fs afero.Fs, path string) (bool, error) { + stat, err := fs.Stat(path) + if err == nil { + return !stat.IsDir(), nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +func stringInSlice(a string, list []string) bool { + for _, b := range list { + if b == a { + return true + } + } + return false +} + +func userHomeDir() string { + if runtime.GOOS == "windows" { + home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") + if home == "" { + home = os.Getenv("USERPROFILE") + } + return home + } + return os.Getenv("HOME") +} + +func safeMul(a, b uint) uint { + c := a * b + if a > 1 && b > 1 && c/b != a { + return 0 + } + return c +} + +// parseSizeInBytes converts strings like 1GB or 12 mb into an unsigned integer number of bytes +func parseSizeInBytes(sizeStr string) uint { + sizeStr = strings.TrimSpace(sizeStr) + lastChar := len(sizeStr) - 1 + multiplier := uint(1) + + if lastChar > 0 { + if sizeStr[lastChar] == 'b' || sizeStr[lastChar] == 'B' { + if lastChar > 1 { + switch unicode.ToLower(rune(sizeStr[lastChar-1])) { + case 'k': + multiplier = 1 << 10 + sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) + case 'm': + multiplier = 1 << 20 + sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) + case 'g': + multiplier = 1 << 30 + sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) + default: + multiplier = 1 + sizeStr = strings.TrimSpace(sizeStr[:lastChar]) + } + } + } + } + + size := cast.ToInt(sizeStr) + if size < 0 { + size = 0 + } + + return safeMul(uint(size), multiplier) +} + +// deepSearch scans deep maps, following the key indexes listed in the +// sequence "path". +// The last value is expected to be another map, and is returned. +// +// In case intermediate keys do not exist, or map to a non-map value, +// a new map is created and inserted, and the search continues from there: +// the initial map "m" may be modified! +func deepSearch(m map[string]interface{}, path []string) map[string]interface{} { + for _, k := range path { + m2, ok := m[k] + if !ok { + // intermediate key does not exist + // => create it and continue from there + m3 := make(map[string]interface{}) + m[k] = m3 + m = m3 + continue + } + m3, ok := m2.(map[string]interface{}) + if !ok { + // intermediate key is a value + // => replace with a new map + m3 = make(map[string]interface{}) + m[k] = m3 + } + // continue search from here + m = m3 + } + return m +} diff --git a/vendor/github.com/spf13/viper/viper.go b/vendor/github.com/spf13/viper/viper.go new file mode 100644 index 0000000..405dc20 --- /dev/null +++ b/vendor/github.com/spf13/viper/viper.go @@ -0,0 +1,2025 @@ +// Copyright © 2014 Steve Francia . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +// Viper is an application configuration system. +// It believes that applications can be configured a variety of ways +// via flags, ENVIRONMENT variables, configuration files retrieved +// from the file system, or a remote key/value store. + +// Each item takes precedence over the item below it: + +// overrides +// flag +// env +// config +// key/value store +// default + +package viper + +import ( + "bytes" + "encoding/csv" + "encoding/json" + "errors" + "fmt" + "io" + "log" + "os" + "path/filepath" + "reflect" + "strings" + "sync" + "time" + + "github.com/fsnotify/fsnotify" + "github.com/hashicorp/hcl" + "github.com/hashicorp/hcl/hcl/printer" + "github.com/magiconair/properties" + "github.com/mitchellh/mapstructure" + "github.com/pelletier/go-toml" + "github.com/spf13/afero" + "github.com/spf13/cast" + jww "github.com/spf13/jwalterweatherman" + "github.com/spf13/pflag" + "github.com/subosito/gotenv" + "gopkg.in/ini.v1" + "gopkg.in/yaml.v2" +) + +// ConfigMarshalError happens when failing to marshal the configuration. +type ConfigMarshalError struct { + err error +} + +// Error returns the formatted configuration error. +func (e ConfigMarshalError) Error() string { + return fmt.Sprintf("While marshaling config: %s", e.err.Error()) +} + +var v *Viper + +type RemoteResponse struct { + Value []byte + Error error +} + +func init() { + v = New() +} + +type remoteConfigFactory interface { + Get(rp RemoteProvider) (io.Reader, error) + Watch(rp RemoteProvider) (io.Reader, error) + WatchChannel(rp RemoteProvider) (<-chan *RemoteResponse, chan bool) +} + +// RemoteConfig is optional, see the remote package +var RemoteConfig remoteConfigFactory + +// UnsupportedConfigError denotes encountering an unsupported +// configuration filetype. +type UnsupportedConfigError string + +// Error returns the formatted configuration error. +func (str UnsupportedConfigError) Error() string { + return fmt.Sprintf("Unsupported Config Type %q", string(str)) +} + +// UnsupportedRemoteProviderError denotes encountering an unsupported remote +// provider. Currently only etcd and Consul are supported. +type UnsupportedRemoteProviderError string + +// Error returns the formatted remote provider error. +func (str UnsupportedRemoteProviderError) Error() string { + return fmt.Sprintf("Unsupported Remote Provider Type %q", string(str)) +} + +// RemoteConfigError denotes encountering an error while trying to +// pull the configuration from the remote provider. +type RemoteConfigError string + +// Error returns the formatted remote provider error +func (rce RemoteConfigError) Error() string { + return fmt.Sprintf("Remote Configurations Error: %s", string(rce)) +} + +// ConfigFileNotFoundError denotes failing to find configuration file. +type ConfigFileNotFoundError struct { + name, locations string +} + +// Error returns the formatted configuration error. +func (fnfe ConfigFileNotFoundError) Error() string { + return fmt.Sprintf("Config File %q Not Found in %q", fnfe.name, fnfe.locations) +} + +// ConfigFileAlreadyExistsError denotes failure to write new configuration file. +type ConfigFileAlreadyExistsError string + +// Error returns the formatted error when configuration already exists. +func (faee ConfigFileAlreadyExistsError) Error() string { + return fmt.Sprintf("Config File %q Already Exists", string(faee)) +} + +// A DecoderConfigOption can be passed to viper.Unmarshal to configure +// mapstructure.DecoderConfig options +type DecoderConfigOption func(*mapstructure.DecoderConfig) + +// DecodeHook returns a DecoderConfigOption which overrides the default +// DecoderConfig.DecodeHook value, the default is: +// +// mapstructure.ComposeDecodeHookFunc( +// mapstructure.StringToTimeDurationHookFunc(), +// mapstructure.StringToSliceHookFunc(","), +// ) +func DecodeHook(hook mapstructure.DecodeHookFunc) DecoderConfigOption { + return func(c *mapstructure.DecoderConfig) { + c.DecodeHook = hook + } +} + +// Viper is a prioritized configuration registry. It +// maintains a set of configuration sources, fetches +// values to populate those, and provides them according +// to the source's priority. +// The priority of the sources is the following: +// 1. overrides +// 2. flags +// 3. env. variables +// 4. config file +// 5. key/value store +// 6. defaults +// +// For example, if values from the following sources were loaded: +// +// Defaults : { +// "secret": "", +// "user": "default", +// "endpoint": "https://localhost" +// } +// Config : { +// "user": "root" +// "secret": "defaultsecret" +// } +// Env : { +// "secret": "somesecretkey" +// } +// +// The resulting config will have the following values: +// +// { +// "secret": "somesecretkey", +// "user": "root", +// "endpoint": "https://localhost" +// } +type Viper struct { + // Delimiter that separates a list of keys + // used to access a nested value in one go + keyDelim string + + // A set of paths to look for the config file in + configPaths []string + + // The filesystem to read config from. + fs afero.Fs + + // A set of remote providers to search for the configuration + remoteProviders []*defaultRemoteProvider + + // Name of file to look for inside the path + configName string + configFile string + configType string + configPermissions os.FileMode + envPrefix string + + automaticEnvApplied bool + envKeyReplacer StringReplacer + allowEmptyEnv bool + + config map[string]interface{} + override map[string]interface{} + defaults map[string]interface{} + kvstore map[string]interface{} + pflags map[string]FlagValue + env map[string]string + aliases map[string]string + typeByDefValue bool + + // Store read properties on the object so that we can write back in order with comments. + // This will only be used if the configuration read is a properties file. + properties *properties.Properties + + onConfigChange func(fsnotify.Event) +} + +// New returns an initialized Viper instance. +func New() *Viper { + v := new(Viper) + v.keyDelim = "." + v.configName = "config" + v.configPermissions = os.FileMode(0644) + v.fs = afero.NewOsFs() + v.config = make(map[string]interface{}) + v.override = make(map[string]interface{}) + v.defaults = make(map[string]interface{}) + v.kvstore = make(map[string]interface{}) + v.pflags = make(map[string]FlagValue) + v.env = make(map[string]string) + v.aliases = make(map[string]string) + v.typeByDefValue = false + + return v +} + +// Option configures Viper using the functional options paradigm popularized by Rob Pike and Dave Cheney. +// If you're unfamiliar with this style, +// see https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html and +// https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis. +type Option interface { + apply(v *Viper) +} + +type optionFunc func(v *Viper) + +func (fn optionFunc) apply(v *Viper) { + fn(v) +} + +// KeyDelimiter sets the delimiter used for determining key parts. +// By default it's value is ".". +func KeyDelimiter(d string) Option { + return optionFunc(func(v *Viper) { + v.keyDelim = d + }) +} + +// StringReplacer applies a set of replacements to a string. +type StringReplacer interface { + // Replace returns a copy of s with all replacements performed. + Replace(s string) string +} + +// EnvKeyReplacer sets a replacer used for mapping environment variables to internal keys. +func EnvKeyReplacer(r StringReplacer) Option { + return optionFunc(func(v *Viper) { + v.envKeyReplacer = r + }) +} + +// NewWithOptions creates a new Viper instance. +func NewWithOptions(opts ...Option) *Viper { + v := New() + + for _, opt := range opts { + opt.apply(v) + } + + return v +} + +// Reset is intended for testing, will reset all to default settings. +// In the public interface for the viper package so applications +// can use it in their testing as well. +func Reset() { + v = New() + SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "dotenv", "env", "ini"} + SupportedRemoteProviders = []string{"etcd", "consul", "firestore"} +} + +type defaultRemoteProvider struct { + provider string + endpoint string + path string + secretKeyring string +} + +func (rp defaultRemoteProvider) Provider() string { + return rp.provider +} + +func (rp defaultRemoteProvider) Endpoint() string { + return rp.endpoint +} + +func (rp defaultRemoteProvider) Path() string { + return rp.path +} + +func (rp defaultRemoteProvider) SecretKeyring() string { + return rp.secretKeyring +} + +// RemoteProvider stores the configuration necessary +// to connect to a remote key/value store. +// Optional secretKeyring to unencrypt encrypted values +// can be provided. +type RemoteProvider interface { + Provider() string + Endpoint() string + Path() string + SecretKeyring() string +} + +// SupportedExts are universally supported extensions. +var SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "dotenv", "env", "ini"} + +// SupportedRemoteProviders are universally supported remote providers. +var SupportedRemoteProviders = []string{"etcd", "consul", "firestore"} + +func OnConfigChange(run func(in fsnotify.Event)) { v.OnConfigChange(run) } +func (v *Viper) OnConfigChange(run func(in fsnotify.Event)) { + v.onConfigChange = run +} + +func WatchConfig() { v.WatchConfig() } + +func (v *Viper) WatchConfig() { + initWG := sync.WaitGroup{} + initWG.Add(1) + go func() { + watcher, err := fsnotify.NewWatcher() + if err != nil { + log.Fatal(err) + } + defer watcher.Close() + // we have to watch the entire directory to pick up renames/atomic saves in a cross-platform way + filename, err := v.getConfigFile() + if err != nil { + log.Printf("error: %v\n", err) + initWG.Done() + return + } + + configFile := filepath.Clean(filename) + configDir, _ := filepath.Split(configFile) + realConfigFile, _ := filepath.EvalSymlinks(filename) + + eventsWG := sync.WaitGroup{} + eventsWG.Add(1) + go func() { + for { + select { + case event, ok := <-watcher.Events: + if !ok { // 'Events' channel is closed + eventsWG.Done() + return + } + currentConfigFile, _ := filepath.EvalSymlinks(filename) + // we only care about the config file with the following cases: + // 1 - if the config file was modified or created + // 2 - if the real path to the config file changed (eg: k8s ConfigMap replacement) + const writeOrCreateMask = fsnotify.Write | fsnotify.Create + if (filepath.Clean(event.Name) == configFile && + event.Op&writeOrCreateMask != 0) || + (currentConfigFile != "" && currentConfigFile != realConfigFile) { + realConfigFile = currentConfigFile + err := v.ReadInConfig() + if err != nil { + log.Printf("error reading config file: %v\n", err) + } + if v.onConfigChange != nil { + v.onConfigChange(event) + } + } else if filepath.Clean(event.Name) == configFile && + event.Op&fsnotify.Remove&fsnotify.Remove != 0 { + eventsWG.Done() + return + } + + case err, ok := <-watcher.Errors: + if ok { // 'Errors' channel is not closed + log.Printf("watcher error: %v\n", err) + } + eventsWG.Done() + return + } + } + }() + watcher.Add(configDir) + initWG.Done() // done initializing the watch in this go routine, so the parent routine can move on... + eventsWG.Wait() // now, wait for event loop to end in this go-routine... + }() + initWG.Wait() // make sure that the go routine above fully ended before returning +} + +// SetConfigFile explicitly defines the path, name and extension of the config file. +// Viper will use this and not check any of the config paths. +func SetConfigFile(in string) { v.SetConfigFile(in) } +func (v *Viper) SetConfigFile(in string) { + if in != "" { + v.configFile = in + } +} + +// SetEnvPrefix defines a prefix that ENVIRONMENT variables will use. +// E.g. if your prefix is "spf", the env registry will look for env +// variables that start with "SPF_". +func SetEnvPrefix(in string) { v.SetEnvPrefix(in) } +func (v *Viper) SetEnvPrefix(in string) { + if in != "" { + v.envPrefix = in + } +} + +func (v *Viper) mergeWithEnvPrefix(in string) string { + if v.envPrefix != "" { + return strings.ToUpper(v.envPrefix + "_" + in) + } + + return strings.ToUpper(in) +} + +// AllowEmptyEnv tells Viper to consider set, +// but empty environment variables as valid values instead of falling back. +// For backward compatibility reasons this is false by default. +func AllowEmptyEnv(allowEmptyEnv bool) { v.AllowEmptyEnv(allowEmptyEnv) } +func (v *Viper) AllowEmptyEnv(allowEmptyEnv bool) { + v.allowEmptyEnv = allowEmptyEnv +} + +// TODO: should getEnv logic be moved into find(). Can generalize the use of +// rewriting keys many things, Ex: Get('someKey') -> some_key +// (camel case to snake case for JSON keys perhaps) + +// getEnv is a wrapper around os.Getenv which replaces characters in the original +// key. This allows env vars which have different keys than the config object +// keys. +func (v *Viper) getEnv(key string) (string, bool) { + if v.envKeyReplacer != nil { + key = v.envKeyReplacer.Replace(key) + } + + val, ok := os.LookupEnv(key) + + return val, ok && (v.allowEmptyEnv || val != "") +} + +// ConfigFileUsed returns the file used to populate the config registry. +func ConfigFileUsed() string { return v.ConfigFileUsed() } +func (v *Viper) ConfigFileUsed() string { return v.configFile } + +// AddConfigPath adds a path for Viper to search for the config file in. +// Can be called multiple times to define multiple search paths. +func AddConfigPath(in string) { v.AddConfigPath(in) } +func (v *Viper) AddConfigPath(in string) { + if in != "" { + absin := absPathify(in) + jww.INFO.Println("adding", absin, "to paths to search") + if !stringInSlice(absin, v.configPaths) { + v.configPaths = append(v.configPaths, absin) + } + } +} + +// AddRemoteProvider adds a remote configuration source. +// Remote Providers are searched in the order they are added. +// provider is a string value: "etcd", "consul" or "firestore" are currently supported. +// endpoint is the url. etcd requires http://ip:port consul requires ip:port +// path is the path in the k/v store to retrieve configuration +// To retrieve a config file called myapp.json from /configs/myapp.json +// you should set path to /configs and set config name (SetConfigName()) to +// "myapp" +func AddRemoteProvider(provider, endpoint, path string) error { + return v.AddRemoteProvider(provider, endpoint, path) +} +func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error { + if !stringInSlice(provider, SupportedRemoteProviders) { + return UnsupportedRemoteProviderError(provider) + } + if provider != "" && endpoint != "" { + jww.INFO.Printf("adding %s:%s to remote provider list", provider, endpoint) + rp := &defaultRemoteProvider{ + endpoint: endpoint, + provider: provider, + path: path, + } + if !v.providerPathExists(rp) { + v.remoteProviders = append(v.remoteProviders, rp) + } + } + return nil +} + +// AddSecureRemoteProvider adds a remote configuration source. +// Secure Remote Providers are searched in the order they are added. +// provider is a string value: "etcd", "consul" or "firestore" are currently supported. +// endpoint is the url. etcd requires http://ip:port consul requires ip:port +// secretkeyring is the filepath to your openpgp secret keyring. e.g. /etc/secrets/myring.gpg +// path is the path in the k/v store to retrieve configuration +// To retrieve a config file called myapp.json from /configs/myapp.json +// you should set path to /configs and set config name (SetConfigName()) to +// "myapp" +// Secure Remote Providers are implemented with github.com/bketelsen/crypt +func AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { + return v.AddSecureRemoteProvider(provider, endpoint, path, secretkeyring) +} + +func (v *Viper) AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { + if !stringInSlice(provider, SupportedRemoteProviders) { + return UnsupportedRemoteProviderError(provider) + } + if provider != "" && endpoint != "" { + jww.INFO.Printf("adding %s:%s to remote provider list", provider, endpoint) + rp := &defaultRemoteProvider{ + endpoint: endpoint, + provider: provider, + path: path, + secretKeyring: secretkeyring, + } + if !v.providerPathExists(rp) { + v.remoteProviders = append(v.remoteProviders, rp) + } + } + return nil +} + +func (v *Viper) providerPathExists(p *defaultRemoteProvider) bool { + for _, y := range v.remoteProviders { + if reflect.DeepEqual(y, p) { + return true + } + } + return false +} + +// searchMap recursively searches for a value for path in source map. +// Returns nil if not found. +// Note: This assumes that the path entries and map keys are lower cased. +func (v *Viper) searchMap(source map[string]interface{}, path []string) interface{} { + if len(path) == 0 { + return source + } + + next, ok := source[path[0]] + if ok { + // Fast path + if len(path) == 1 { + return next + } + + // Nested case + switch next.(type) { + case map[interface{}]interface{}: + return v.searchMap(cast.ToStringMap(next), path[1:]) + case map[string]interface{}: + // Type assertion is safe here since it is only reached + // if the type of `next` is the same as the type being asserted + return v.searchMap(next.(map[string]interface{}), path[1:]) + default: + // got a value but nested key expected, return "nil" for not found + return nil + } + } + return nil +} + +// searchMapWithPathPrefixes recursively searches for a value for path in source map. +// +// While searchMap() considers each path element as a single map key, this +// function searches for, and prioritizes, merged path elements. +// e.g., if in the source, "foo" is defined with a sub-key "bar", and "foo.bar" +// is also defined, this latter value is returned for path ["foo", "bar"]. +// +// This should be useful only at config level (other maps may not contain dots +// in their keys). +// +// Note: This assumes that the path entries and map keys are lower cased. +func (v *Viper) searchMapWithPathPrefixes(source map[string]interface{}, path []string) interface{} { + if len(path) == 0 { + return source + } + + // search for path prefixes, starting from the longest one + for i := len(path); i > 0; i-- { + prefixKey := strings.ToLower(strings.Join(path[0:i], v.keyDelim)) + + next, ok := source[prefixKey] + if ok { + // Fast path + if i == len(path) { + return next + } + + // Nested case + var val interface{} + switch next.(type) { + case map[interface{}]interface{}: + val = v.searchMapWithPathPrefixes(cast.ToStringMap(next), path[i:]) + case map[string]interface{}: + // Type assertion is safe here since it is only reached + // if the type of `next` is the same as the type being asserted + val = v.searchMapWithPathPrefixes(next.(map[string]interface{}), path[i:]) + default: + // got a value but nested key expected, do nothing and look for next prefix + } + if val != nil { + return val + } + } + } + + // not found + return nil +} + +// isPathShadowedInDeepMap makes sure the given path is not shadowed somewhere +// on its path in the map. +// e.g., if "foo.bar" has a value in the given map, it “shadows” +// "foo.bar.baz" in a lower-priority map +func (v *Viper) isPathShadowedInDeepMap(path []string, m map[string]interface{}) string { + var parentVal interface{} + for i := 1; i < len(path); i++ { + parentVal = v.searchMap(m, path[0:i]) + if parentVal == nil { + // not found, no need to add more path elements + return "" + } + switch parentVal.(type) { + case map[interface{}]interface{}: + continue + case map[string]interface{}: + continue + default: + // parentVal is a regular value which shadows "path" + return strings.Join(path[0:i], v.keyDelim) + } + } + return "" +} + +// isPathShadowedInFlatMap makes sure the given path is not shadowed somewhere +// in a sub-path of the map. +// e.g., if "foo.bar" has a value in the given map, it “shadows” +// "foo.bar.baz" in a lower-priority map +func (v *Viper) isPathShadowedInFlatMap(path []string, mi interface{}) string { + // unify input map + var m map[string]interface{} + switch mi.(type) { + case map[string]string, map[string]FlagValue: + m = cast.ToStringMap(mi) + default: + return "" + } + + // scan paths + var parentKey string + for i := 1; i < len(path); i++ { + parentKey = strings.Join(path[0:i], v.keyDelim) + if _, ok := m[parentKey]; ok { + return parentKey + } + } + return "" +} + +// isPathShadowedInAutoEnv makes sure the given path is not shadowed somewhere +// in the environment, when automatic env is on. +// e.g., if "foo.bar" has a value in the environment, it “shadows” +// "foo.bar.baz" in a lower-priority map +func (v *Viper) isPathShadowedInAutoEnv(path []string) string { + var parentKey string + for i := 1; i < len(path); i++ { + parentKey = strings.Join(path[0:i], v.keyDelim) + if _, ok := v.getEnv(v.mergeWithEnvPrefix(parentKey)); ok { + return parentKey + } + } + return "" +} + +// SetTypeByDefaultValue enables or disables the inference of a key value's +// type when the Get function is used based upon a key's default value as +// opposed to the value returned based on the normal fetch logic. +// +// For example, if a key has a default value of []string{} and the same key +// is set via an environment variable to "a b c", a call to the Get function +// would return a string slice for the key if the key's type is inferred by +// the default value and the Get function would return: +// +// []string {"a", "b", "c"} +// +// Otherwise the Get function would return: +// +// "a b c" +func SetTypeByDefaultValue(enable bool) { v.SetTypeByDefaultValue(enable) } +func (v *Viper) SetTypeByDefaultValue(enable bool) { + v.typeByDefValue = enable +} + +// GetViper gets the global Viper instance. +func GetViper() *Viper { + return v +} + +// Get can retrieve any value given the key to use. +// Get is case-insensitive for a key. +// Get has the behavior of returning the value associated with the first +// place from where it is set. Viper will check in the following order: +// override, flag, env, config file, key/value store, default +// +// Get returns an interface. For a specific value use one of the Get____ methods. +func Get(key string) interface{} { return v.Get(key) } +func (v *Viper) Get(key string) interface{} { + lcaseKey := strings.ToLower(key) + val := v.find(lcaseKey, true) + if val == nil { + return nil + } + + if v.typeByDefValue { + // TODO(bep) this branch isn't covered by a single test. + valType := val + path := strings.Split(lcaseKey, v.keyDelim) + defVal := v.searchMap(v.defaults, path) + if defVal != nil { + valType = defVal + } + + switch valType.(type) { + case bool: + return cast.ToBool(val) + case string: + return cast.ToString(val) + case int32, int16, int8, int: + return cast.ToInt(val) + case uint: + return cast.ToUint(val) + case uint32: + return cast.ToUint32(val) + case uint64: + return cast.ToUint64(val) + case int64: + return cast.ToInt64(val) + case float64, float32: + return cast.ToFloat64(val) + case time.Time: + return cast.ToTime(val) + case time.Duration: + return cast.ToDuration(val) + case []string: + return cast.ToStringSlice(val) + case []int: + return cast.ToIntSlice(val) + } + } + + return val +} + +// Sub returns new Viper instance representing a sub tree of this instance. +// Sub is case-insensitive for a key. +func Sub(key string) *Viper { return v.Sub(key) } +func (v *Viper) Sub(key string) *Viper { + subv := New() + data := v.Get(key) + if data == nil { + return nil + } + + if reflect.TypeOf(data).Kind() == reflect.Map { + subv.config = cast.ToStringMap(data) + return subv + } + return nil +} + +// GetString returns the value associated with the key as a string. +func GetString(key string) string { return v.GetString(key) } +func (v *Viper) GetString(key string) string { + return cast.ToString(v.Get(key)) +} + +// GetBool returns the value associated with the key as a boolean. +func GetBool(key string) bool { return v.GetBool(key) } +func (v *Viper) GetBool(key string) bool { + return cast.ToBool(v.Get(key)) +} + +// GetInt returns the value associated with the key as an integer. +func GetInt(key string) int { return v.GetInt(key) } +func (v *Viper) GetInt(key string) int { + return cast.ToInt(v.Get(key)) +} + +// GetInt32 returns the value associated with the key as an integer. +func GetInt32(key string) int32 { return v.GetInt32(key) } +func (v *Viper) GetInt32(key string) int32 { + return cast.ToInt32(v.Get(key)) +} + +// GetInt64 returns the value associated with the key as an integer. +func GetInt64(key string) int64 { return v.GetInt64(key) } +func (v *Viper) GetInt64(key string) int64 { + return cast.ToInt64(v.Get(key)) +} + +// GetUint returns the value associated with the key as an unsigned integer. +func GetUint(key string) uint { return v.GetUint(key) } +func (v *Viper) GetUint(key string) uint { + return cast.ToUint(v.Get(key)) +} + +// GetUint32 returns the value associated with the key as an unsigned integer. +func GetUint32(key string) uint32 { return v.GetUint32(key) } +func (v *Viper) GetUint32(key string) uint32 { + return cast.ToUint32(v.Get(key)) +} + +// GetUint64 returns the value associated with the key as an unsigned integer. +func GetUint64(key string) uint64 { return v.GetUint64(key) } +func (v *Viper) GetUint64(key string) uint64 { + return cast.ToUint64(v.Get(key)) +} + +// GetFloat64 returns the value associated with the key as a float64. +func GetFloat64(key string) float64 { return v.GetFloat64(key) } +func (v *Viper) GetFloat64(key string) float64 { + return cast.ToFloat64(v.Get(key)) +} + +// GetTime returns the value associated with the key as time. +func GetTime(key string) time.Time { return v.GetTime(key) } +func (v *Viper) GetTime(key string) time.Time { + return cast.ToTime(v.Get(key)) +} + +// GetDuration returns the value associated with the key as a duration. +func GetDuration(key string) time.Duration { return v.GetDuration(key) } +func (v *Viper) GetDuration(key string) time.Duration { + return cast.ToDuration(v.Get(key)) +} + +// GetIntSlice returns the value associated with the key as a slice of int values. +func GetIntSlice(key string) []int { return v.GetIntSlice(key) } +func (v *Viper) GetIntSlice(key string) []int { + return cast.ToIntSlice(v.Get(key)) +} + +// GetStringSlice returns the value associated with the key as a slice of strings. +func GetStringSlice(key string) []string { return v.GetStringSlice(key) } +func (v *Viper) GetStringSlice(key string) []string { + return cast.ToStringSlice(v.Get(key)) +} + +// GetStringMap returns the value associated with the key as a map of interfaces. +func GetStringMap(key string) map[string]interface{} { return v.GetStringMap(key) } +func (v *Viper) GetStringMap(key string) map[string]interface{} { + return cast.ToStringMap(v.Get(key)) +} + +// GetStringMapString returns the value associated with the key as a map of strings. +func GetStringMapString(key string) map[string]string { return v.GetStringMapString(key) } +func (v *Viper) GetStringMapString(key string) map[string]string { + return cast.ToStringMapString(v.Get(key)) +} + +// GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings. +func GetStringMapStringSlice(key string) map[string][]string { return v.GetStringMapStringSlice(key) } +func (v *Viper) GetStringMapStringSlice(key string) map[string][]string { + return cast.ToStringMapStringSlice(v.Get(key)) +} + +// GetSizeInBytes returns the size of the value associated with the given key +// in bytes. +func GetSizeInBytes(key string) uint { return v.GetSizeInBytes(key) } +func (v *Viper) GetSizeInBytes(key string) uint { + sizeStr := cast.ToString(v.Get(key)) + return parseSizeInBytes(sizeStr) +} + +// UnmarshalKey takes a single key and unmarshals it into a Struct. +func UnmarshalKey(key string, rawVal interface{}, opts ...DecoderConfigOption) error { + return v.UnmarshalKey(key, rawVal, opts...) +} +func (v *Viper) UnmarshalKey(key string, rawVal interface{}, opts ...DecoderConfigOption) error { + return decode(v.Get(key), defaultDecoderConfig(rawVal, opts...)) +} + +// Unmarshal unmarshals the config into a Struct. Make sure that the tags +// on the fields of the structure are properly set. +func Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) error { + return v.Unmarshal(rawVal, opts...) +} +func (v *Viper) Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) error { + return decode(v.AllSettings(), defaultDecoderConfig(rawVal, opts...)) +} + +// defaultDecoderConfig returns default mapsstructure.DecoderConfig with suppot +// of time.Duration values & string slices +func defaultDecoderConfig(output interface{}, opts ...DecoderConfigOption) *mapstructure.DecoderConfig { + c := &mapstructure.DecoderConfig{ + Metadata: nil, + Result: output, + WeaklyTypedInput: true, + DecodeHook: mapstructure.ComposeDecodeHookFunc( + mapstructure.StringToTimeDurationHookFunc(), + mapstructure.StringToSliceHookFunc(","), + ), + } + for _, opt := range opts { + opt(c) + } + return c +} + +// A wrapper around mapstructure.Decode that mimics the WeakDecode functionality +func decode(input interface{}, config *mapstructure.DecoderConfig) error { + decoder, err := mapstructure.NewDecoder(config) + if err != nil { + return err + } + return decoder.Decode(input) +} + +// UnmarshalExact unmarshals the config into a Struct, erroring if a field is nonexistent +// in the destination struct. +func UnmarshalExact(rawVal interface{}, opts ...DecoderConfigOption) error { + return v.UnmarshalExact(rawVal, opts...) +} +func (v *Viper) UnmarshalExact(rawVal interface{}, opts ...DecoderConfigOption) error { + config := defaultDecoderConfig(rawVal, opts...) + config.ErrorUnused = true + + return decode(v.AllSettings(), config) +} + +// BindPFlags binds a full flag set to the configuration, using each flag's long +// name as the config key. +func BindPFlags(flags *pflag.FlagSet) error { return v.BindPFlags(flags) } +func (v *Viper) BindPFlags(flags *pflag.FlagSet) error { + return v.BindFlagValues(pflagValueSet{flags}) +} + +// BindPFlag binds a specific key to a pflag (as used by cobra). +// Example (where serverCmd is a Cobra instance): +// +// serverCmd.Flags().Int("port", 1138, "Port to run Application server on") +// Viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) +// +func BindPFlag(key string, flag *pflag.Flag) error { return v.BindPFlag(key, flag) } +func (v *Viper) BindPFlag(key string, flag *pflag.Flag) error { + return v.BindFlagValue(key, pflagValue{flag}) +} + +// BindFlagValues binds a full FlagValue set to the configuration, using each flag's long +// name as the config key. +func BindFlagValues(flags FlagValueSet) error { return v.BindFlagValues(flags) } +func (v *Viper) BindFlagValues(flags FlagValueSet) (err error) { + flags.VisitAll(func(flag FlagValue) { + if err = v.BindFlagValue(flag.Name(), flag); err != nil { + return + } + }) + return nil +} + +// BindFlagValue binds a specific key to a FlagValue. +func BindFlagValue(key string, flag FlagValue) error { return v.BindFlagValue(key, flag) } +func (v *Viper) BindFlagValue(key string, flag FlagValue) error { + if flag == nil { + return fmt.Errorf("flag for %q is nil", key) + } + v.pflags[strings.ToLower(key)] = flag + return nil +} + +// BindEnv binds a Viper key to a ENV variable. +// ENV variables are case sensitive. +// If only a key is provided, it will use the env key matching the key, uppercased. +// EnvPrefix will be used when set when env name is not provided. +func BindEnv(input ...string) error { return v.BindEnv(input...) } +func (v *Viper) BindEnv(input ...string) error { + var key, envkey string + if len(input) == 0 { + return fmt.Errorf("missing key to bind to") + } + + key = strings.ToLower(input[0]) + + if len(input) == 1 { + envkey = v.mergeWithEnvPrefix(key) + } else { + envkey = input[1] + } + + v.env[key] = envkey + + return nil +} + +// Given a key, find the value. +// +// Viper will check to see if an alias exists first. +// Viper will then check in the following order: +// flag, env, config file, key/value store. +// Lastly, if no value was found and flagDefault is true, and if the key +// corresponds to a flag, the flag's default value is returned. +// +// Note: this assumes a lower-cased key given. +func (v *Viper) find(lcaseKey string, flagDefault bool) interface{} { + var ( + val interface{} + exists bool + path = strings.Split(lcaseKey, v.keyDelim) + nested = len(path) > 1 + ) + + // compute the path through the nested maps to the nested value + if nested && v.isPathShadowedInDeepMap(path, castMapStringToMapInterface(v.aliases)) != "" { + return nil + } + + // if the requested key is an alias, then return the proper key + lcaseKey = v.realKey(lcaseKey) + path = strings.Split(lcaseKey, v.keyDelim) + nested = len(path) > 1 + + // Set() override first + val = v.searchMap(v.override, path) + if val != nil { + return val + } + if nested && v.isPathShadowedInDeepMap(path, v.override) != "" { + return nil + } + + // PFlag override next + flag, exists := v.pflags[lcaseKey] + if exists && flag.HasChanged() { + switch flag.ValueType() { + case "int", "int8", "int16", "int32", "int64": + return cast.ToInt(flag.ValueString()) + case "bool": + return cast.ToBool(flag.ValueString()) + case "stringSlice": + s := strings.TrimPrefix(flag.ValueString(), "[") + s = strings.TrimSuffix(s, "]") + res, _ := readAsCSV(s) + return res + case "intSlice": + s := strings.TrimPrefix(flag.ValueString(), "[") + s = strings.TrimSuffix(s, "]") + res, _ := readAsCSV(s) + return cast.ToIntSlice(res) + case "stringToString": + return stringToStringConv(flag.ValueString()) + default: + return flag.ValueString() + } + } + if nested && v.isPathShadowedInFlatMap(path, v.pflags) != "" { + return nil + } + + // Env override next + if v.automaticEnvApplied { + // even if it hasn't been registered, if automaticEnv is used, + // check any Get request + if val, ok := v.getEnv(v.mergeWithEnvPrefix(lcaseKey)); ok { + return val + } + if nested && v.isPathShadowedInAutoEnv(path) != "" { + return nil + } + } + envkey, exists := v.env[lcaseKey] + if exists { + if val, ok := v.getEnv(envkey); ok { + return val + } + } + if nested && v.isPathShadowedInFlatMap(path, v.env) != "" { + return nil + } + + // Config file next + val = v.searchMapWithPathPrefixes(v.config, path) + if val != nil { + return val + } + if nested && v.isPathShadowedInDeepMap(path, v.config) != "" { + return nil + } + + // K/V store next + val = v.searchMap(v.kvstore, path) + if val != nil { + return val + } + if nested && v.isPathShadowedInDeepMap(path, v.kvstore) != "" { + return nil + } + + // Default next + val = v.searchMap(v.defaults, path) + if val != nil { + return val + } + if nested && v.isPathShadowedInDeepMap(path, v.defaults) != "" { + return nil + } + + if flagDefault { + // last chance: if no value is found and a flag does exist for the key, + // get the flag's default value even if the flag's value has not been set. + if flag, exists := v.pflags[lcaseKey]; exists { + switch flag.ValueType() { + case "int", "int8", "int16", "int32", "int64": + return cast.ToInt(flag.ValueString()) + case "bool": + return cast.ToBool(flag.ValueString()) + case "stringSlice": + s := strings.TrimPrefix(flag.ValueString(), "[") + s = strings.TrimSuffix(s, "]") + res, _ := readAsCSV(s) + return res + case "intSlice": + s := strings.TrimPrefix(flag.ValueString(), "[") + s = strings.TrimSuffix(s, "]") + res, _ := readAsCSV(s) + return cast.ToIntSlice(res) + case "stringToString": + return stringToStringConv(flag.ValueString()) + default: + return flag.ValueString() + } + } + // last item, no need to check shadowing + } + + return nil +} + +func readAsCSV(val string) ([]string, error) { + if val == "" { + return []string{}, nil + } + stringReader := strings.NewReader(val) + csvReader := csv.NewReader(stringReader) + return csvReader.Read() +} + +// mostly copied from pflag's implementation of this operation here https://github.com/spf13/pflag/blob/master/string_to_string.go#L79 +// alterations are: errors are swallowed, map[string]interface{} is returned in order to enable cast.ToStringMap +func stringToStringConv(val string) interface{} { + val = strings.Trim(val, "[]") + // An empty string would cause an empty map + if len(val) == 0 { + return map[string]interface{}{} + } + r := csv.NewReader(strings.NewReader(val)) + ss, err := r.Read() + if err != nil { + return nil + } + out := make(map[string]interface{}, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return nil + } + out[kv[0]] = kv[1] + } + return out +} + +// IsSet checks to see if the key has been set in any of the data locations. +// IsSet is case-insensitive for a key. +func IsSet(key string) bool { return v.IsSet(key) } +func (v *Viper) IsSet(key string) bool { + lcaseKey := strings.ToLower(key) + val := v.find(lcaseKey, false) + return val != nil +} + +// AutomaticEnv has Viper check ENV variables for all. +// keys set in config, default & flags +func AutomaticEnv() { v.AutomaticEnv() } +func (v *Viper) AutomaticEnv() { + v.automaticEnvApplied = true +} + +// SetEnvKeyReplacer sets the strings.Replacer on the viper object +// Useful for mapping an environmental variable to a key that does +// not match it. +func SetEnvKeyReplacer(r *strings.Replacer) { v.SetEnvKeyReplacer(r) } +func (v *Viper) SetEnvKeyReplacer(r *strings.Replacer) { + v.envKeyReplacer = r +} + +// RegisterAlias creates an alias that provides another accessor for the same key. +// This enables one to change a name without breaking the application. +func RegisterAlias(alias string, key string) { v.RegisterAlias(alias, key) } +func (v *Viper) RegisterAlias(alias string, key string) { + v.registerAlias(alias, strings.ToLower(key)) +} + +func (v *Viper) registerAlias(alias string, key string) { + alias = strings.ToLower(alias) + if alias != key && alias != v.realKey(key) { + _, exists := v.aliases[alias] + + if !exists { + // if we alias something that exists in one of the maps to another + // name, we'll never be able to get that value using the original + // name, so move the config value to the new realkey. + if val, ok := v.config[alias]; ok { + delete(v.config, alias) + v.config[key] = val + } + if val, ok := v.kvstore[alias]; ok { + delete(v.kvstore, alias) + v.kvstore[key] = val + } + if val, ok := v.defaults[alias]; ok { + delete(v.defaults, alias) + v.defaults[key] = val + } + if val, ok := v.override[alias]; ok { + delete(v.override, alias) + v.override[key] = val + } + v.aliases[alias] = key + } + } else { + jww.WARN.Println("Creating circular reference alias", alias, key, v.realKey(key)) + } +} + +func (v *Viper) realKey(key string) string { + newkey, exists := v.aliases[key] + if exists { + jww.DEBUG.Println("Alias", key, "to", newkey) + return v.realKey(newkey) + } + return key +} + +// InConfig checks to see if the given key (or an alias) is in the config file. +func InConfig(key string) bool { return v.InConfig(key) } +func (v *Viper) InConfig(key string) bool { + // if the requested key is an alias, then return the proper key + key = v.realKey(key) + + _, exists := v.config[key] + return exists +} + +// SetDefault sets the default value for this key. +// SetDefault is case-insensitive for a key. +// Default only used when no value is provided by the user via flag, config or ENV. +func SetDefault(key string, value interface{}) { v.SetDefault(key, value) } +func (v *Viper) SetDefault(key string, value interface{}) { + // If alias passed in, then set the proper default + key = v.realKey(strings.ToLower(key)) + value = toCaseInsensitiveValue(value) + + path := strings.Split(key, v.keyDelim) + lastKey := strings.ToLower(path[len(path)-1]) + deepestMap := deepSearch(v.defaults, path[0:len(path)-1]) + + // set innermost value + deepestMap[lastKey] = value +} + +// Set sets the value for the key in the override register. +// Set is case-insensitive for a key. +// Will be used instead of values obtained via +// flags, config file, ENV, default, or key/value store. +func Set(key string, value interface{}) { v.Set(key, value) } +func (v *Viper) Set(key string, value interface{}) { + // If alias passed in, then set the proper override + key = v.realKey(strings.ToLower(key)) + value = toCaseInsensitiveValue(value) + + path := strings.Split(key, v.keyDelim) + lastKey := strings.ToLower(path[len(path)-1]) + deepestMap := deepSearch(v.override, path[0:len(path)-1]) + + // set innermost value + deepestMap[lastKey] = value +} + +// ReadInConfig will discover and load the configuration file from disk +// and key/value stores, searching in one of the defined paths. +func ReadInConfig() error { return v.ReadInConfig() } +func (v *Viper) ReadInConfig() error { + jww.INFO.Println("Attempting to read in config file") + filename, err := v.getConfigFile() + if err != nil { + return err + } + + if !stringInSlice(v.getConfigType(), SupportedExts) { + return UnsupportedConfigError(v.getConfigType()) + } + + jww.DEBUG.Println("Reading file: ", filename) + file, err := afero.ReadFile(v.fs, filename) + if err != nil { + return err + } + + config := make(map[string]interface{}) + + err = v.unmarshalReader(bytes.NewReader(file), config) + if err != nil { + return err + } + + v.config = config + return nil +} + +// MergeInConfig merges a new configuration with an existing config. +func MergeInConfig() error { return v.MergeInConfig() } +func (v *Viper) MergeInConfig() error { + jww.INFO.Println("Attempting to merge in config file") + filename, err := v.getConfigFile() + if err != nil { + return err + } + + if !stringInSlice(v.getConfigType(), SupportedExts) { + return UnsupportedConfigError(v.getConfigType()) + } + + file, err := afero.ReadFile(v.fs, filename) + if err != nil { + return err + } + + return v.MergeConfig(bytes.NewReader(file)) +} + +// ReadConfig will read a configuration file, setting existing keys to nil if the +// key does not exist in the file. +func ReadConfig(in io.Reader) error { return v.ReadConfig(in) } +func (v *Viper) ReadConfig(in io.Reader) error { + v.config = make(map[string]interface{}) + return v.unmarshalReader(in, v.config) +} + +// MergeConfig merges a new configuration with an existing config. +func MergeConfig(in io.Reader) error { return v.MergeConfig(in) } +func (v *Viper) MergeConfig(in io.Reader) error { + cfg := make(map[string]interface{}) + if err := v.unmarshalReader(in, cfg); err != nil { + return err + } + return v.MergeConfigMap(cfg) +} + +// MergeConfigMap merges the configuration from the map given with an existing config. +// Note that the map given may be modified. +func MergeConfigMap(cfg map[string]interface{}) error { return v.MergeConfigMap(cfg) } +func (v *Viper) MergeConfigMap(cfg map[string]interface{}) error { + if v.config == nil { + v.config = make(map[string]interface{}) + } + insensitiviseMap(cfg) + mergeMaps(cfg, v.config, nil) + return nil +} + +// WriteConfig writes the current configuration to a file. +func WriteConfig() error { return v.WriteConfig() } +func (v *Viper) WriteConfig() error { + filename, err := v.getConfigFile() + if err != nil { + return err + } + return v.writeConfig(filename, true) +} + +// SafeWriteConfig writes current configuration to file only if the file does not exist. +func SafeWriteConfig() error { return v.SafeWriteConfig() } +func (v *Viper) SafeWriteConfig() error { + if len(v.configPaths) < 1 { + return errors.New("missing configuration for 'configPath'") + } + return v.SafeWriteConfigAs(filepath.Join(v.configPaths[0], v.configName+"."+v.configType)) +} + +// WriteConfigAs writes current configuration to a given filename. +func WriteConfigAs(filename string) error { return v.WriteConfigAs(filename) } +func (v *Viper) WriteConfigAs(filename string) error { + return v.writeConfig(filename, true) +} + +// SafeWriteConfigAs writes current configuration to a given filename if it does not exist. +func SafeWriteConfigAs(filename string) error { return v.SafeWriteConfigAs(filename) } +func (v *Viper) SafeWriteConfigAs(filename string) error { + alreadyExists, err := afero.Exists(v.fs, filename) + if alreadyExists && err == nil { + return ConfigFileAlreadyExistsError(filename) + } + return v.writeConfig(filename, false) +} + +func (v *Viper) writeConfig(filename string, force bool) error { + jww.INFO.Println("Attempting to write configuration to file.") + var configType string + + ext := filepath.Ext(filename) + if ext != "" { + configType = ext[1:] + } else { + configType = v.configType + } + if configType == "" { + return fmt.Errorf("config type could not be determined for %s", filename) + } + + if !stringInSlice(configType, SupportedExts) { + return UnsupportedConfigError(configType) + } + if v.config == nil { + v.config = make(map[string]interface{}) + } + flags := os.O_CREATE | os.O_TRUNC | os.O_WRONLY + if !force { + flags |= os.O_EXCL + } + f, err := v.fs.OpenFile(filename, flags, v.configPermissions) + if err != nil { + return err + } + defer f.Close() + + if err := v.marshalWriter(f, configType); err != nil { + return err + } + + return f.Sync() +} + +// Unmarshal a Reader into a map. +// Should probably be an unexported function. +func unmarshalReader(in io.Reader, c map[string]interface{}) error { + return v.unmarshalReader(in, c) +} +func (v *Viper) unmarshalReader(in io.Reader, c map[string]interface{}) error { + buf := new(bytes.Buffer) + buf.ReadFrom(in) + + switch strings.ToLower(v.getConfigType()) { + case "yaml", "yml": + if err := yaml.Unmarshal(buf.Bytes(), &c); err != nil { + return ConfigParseError{err} + } + + case "json": + if err := json.Unmarshal(buf.Bytes(), &c); err != nil { + return ConfigParseError{err} + } + + case "hcl": + obj, err := hcl.Parse(buf.String()) + if err != nil { + return ConfigParseError{err} + } + if err = hcl.DecodeObject(&c, obj); err != nil { + return ConfigParseError{err} + } + + case "toml": + tree, err := toml.LoadReader(buf) + if err != nil { + return ConfigParseError{err} + } + tmap := tree.ToMap() + for k, v := range tmap { + c[k] = v + } + + case "dotenv", "env": + env, err := gotenv.StrictParse(buf) + if err != nil { + return ConfigParseError{err} + } + for k, v := range env { + c[k] = v + } + + case "properties", "props", "prop": + v.properties = properties.NewProperties() + var err error + if v.properties, err = properties.Load(buf.Bytes(), properties.UTF8); err != nil { + return ConfigParseError{err} + } + for _, key := range v.properties.Keys() { + value, _ := v.properties.Get(key) + // recursively build nested maps + path := strings.Split(key, ".") + lastKey := strings.ToLower(path[len(path)-1]) + deepestMap := deepSearch(c, path[0:len(path)-1]) + // set innermost value + deepestMap[lastKey] = value + } + + case "ini": + cfg := ini.Empty() + err := cfg.Append(buf.Bytes()) + if err != nil { + return ConfigParseError{err} + } + sections := cfg.Sections() + for i := 0; i < len(sections); i++ { + section := sections[i] + keys := section.Keys() + for j := 0; j < len(keys); j++ { + key := keys[j] + value := cfg.Section(section.Name()).Key(key.Name()).String() + c[section.Name()+"."+key.Name()] = value + } + } + } + + insensitiviseMap(c) + return nil +} + +// Marshal a map into Writer. +func (v *Viper) marshalWriter(f afero.File, configType string) error { + c := v.AllSettings() + switch configType { + case "json": + b, err := json.MarshalIndent(c, "", " ") + if err != nil { + return ConfigMarshalError{err} + } + _, err = f.WriteString(string(b)) + if err != nil { + return ConfigMarshalError{err} + } + + case "hcl": + b, err := json.Marshal(c) + if err != nil { + return ConfigMarshalError{err} + } + ast, err := hcl.Parse(string(b)) + if err != nil { + return ConfigMarshalError{err} + } + err = printer.Fprint(f, ast.Node) + if err != nil { + return ConfigMarshalError{err} + } + + case "prop", "props", "properties": + if v.properties == nil { + v.properties = properties.NewProperties() + } + p := v.properties + for _, key := range v.AllKeys() { + _, _, err := p.Set(key, v.GetString(key)) + if err != nil { + return ConfigMarshalError{err} + } + } + _, err := p.WriteComment(f, "#", properties.UTF8) + if err != nil { + return ConfigMarshalError{err} + } + + case "dotenv", "env": + lines := []string{} + for _, key := range v.AllKeys() { + envName := strings.ToUpper(strings.Replace(key, ".", "_", -1)) + val := v.Get(key) + lines = append(lines, fmt.Sprintf("%v=%v", envName, val)) + } + s := strings.Join(lines, "\n") + if _, err := f.WriteString(s); err != nil { + return ConfigMarshalError{err} + } + + case "toml": + t, err := toml.TreeFromMap(c) + if err != nil { + return ConfigMarshalError{err} + } + s := t.String() + if _, err := f.WriteString(s); err != nil { + return ConfigMarshalError{err} + } + + case "yaml", "yml": + b, err := yaml.Marshal(c) + if err != nil { + return ConfigMarshalError{err} + } + if _, err = f.WriteString(string(b)); err != nil { + return ConfigMarshalError{err} + } + + case "ini": + keys := v.AllKeys() + cfg := ini.Empty() + ini.PrettyFormat = false + for i := 0; i < len(keys); i++ { + key := keys[i] + lastSep := strings.LastIndex(key, ".") + sectionName := key[:(lastSep)] + keyName := key[(lastSep + 1):] + if sectionName == "default" { + sectionName = "" + } + cfg.Section(sectionName).Key(keyName).SetValue(v.Get(key).(string)) + } + cfg.WriteTo(f) + } + return nil +} + +func keyExists(k string, m map[string]interface{}) string { + lk := strings.ToLower(k) + for mk := range m { + lmk := strings.ToLower(mk) + if lmk == lk { + return mk + } + } + return "" +} + +func castToMapStringInterface( + src map[interface{}]interface{}) map[string]interface{} { + tgt := map[string]interface{}{} + for k, v := range src { + tgt[fmt.Sprintf("%v", k)] = v + } + return tgt +} + +func castMapStringToMapInterface(src map[string]string) map[string]interface{} { + tgt := map[string]interface{}{} + for k, v := range src { + tgt[k] = v + } + return tgt +} + +func castMapFlagToMapInterface(src map[string]FlagValue) map[string]interface{} { + tgt := map[string]interface{}{} + for k, v := range src { + tgt[k] = v + } + return tgt +} + +// mergeMaps merges two maps. The `itgt` parameter is for handling go-yaml's +// insistence on parsing nested structures as `map[interface{}]interface{}` +// instead of using a `string` as the key for nest structures beyond one level +// deep. Both map types are supported as there is a go-yaml fork that uses +// `map[string]interface{}` instead. +func mergeMaps( + src, tgt map[string]interface{}, itgt map[interface{}]interface{}) { + for sk, sv := range src { + tk := keyExists(sk, tgt) + if tk == "" { + jww.TRACE.Printf("tk=\"\", tgt[%s]=%v", sk, sv) + tgt[sk] = sv + if itgt != nil { + itgt[sk] = sv + } + continue + } + + tv, ok := tgt[tk] + if !ok { + jww.TRACE.Printf("tgt[%s] != ok, tgt[%s]=%v", tk, sk, sv) + tgt[sk] = sv + if itgt != nil { + itgt[sk] = sv + } + continue + } + + svType := reflect.TypeOf(sv) + tvType := reflect.TypeOf(tv) + if svType != tvType { + jww.ERROR.Printf( + "svType != tvType; key=%s, st=%v, tt=%v, sv=%v, tv=%v", + sk, svType, tvType, sv, tv) + continue + } + + jww.TRACE.Printf("processing key=%s, st=%v, tt=%v, sv=%v, tv=%v", + sk, svType, tvType, sv, tv) + + switch ttv := tv.(type) { + case map[interface{}]interface{}: + jww.TRACE.Printf("merging maps (must convert)") + tsv := sv.(map[interface{}]interface{}) + ssv := castToMapStringInterface(tsv) + stv := castToMapStringInterface(ttv) + mergeMaps(ssv, stv, ttv) + case map[string]interface{}: + jww.TRACE.Printf("merging maps") + mergeMaps(sv.(map[string]interface{}), ttv, nil) + default: + jww.TRACE.Printf("setting value") + tgt[tk] = sv + if itgt != nil { + itgt[tk] = sv + } + } + } +} + +// ReadRemoteConfig attempts to get configuration from a remote source +// and read it in the remote configuration registry. +func ReadRemoteConfig() error { return v.ReadRemoteConfig() } +func (v *Viper) ReadRemoteConfig() error { + return v.getKeyValueConfig() +} + +func WatchRemoteConfig() error { return v.WatchRemoteConfig() } +func (v *Viper) WatchRemoteConfig() error { + return v.watchKeyValueConfig() +} + +func (v *Viper) WatchRemoteConfigOnChannel() error { + return v.watchKeyValueConfigOnChannel() +} + +// Retrieve the first found remote configuration. +func (v *Viper) getKeyValueConfig() error { + if RemoteConfig == nil { + return RemoteConfigError("Enable the remote features by doing a blank import of the viper/remote package: '_ github.com/spf13/viper/remote'") + } + + for _, rp := range v.remoteProviders { + val, err := v.getRemoteConfig(rp) + if err != nil { + continue + } + v.kvstore = val + return nil + } + return RemoteConfigError("No Files Found") +} + +func (v *Viper) getRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { + reader, err := RemoteConfig.Get(provider) + if err != nil { + return nil, err + } + err = v.unmarshalReader(reader, v.kvstore) + return v.kvstore, err +} + +// Retrieve the first found remote configuration. +func (v *Viper) watchKeyValueConfigOnChannel() error { + for _, rp := range v.remoteProviders { + respc, _ := RemoteConfig.WatchChannel(rp) + // Todo: Add quit channel + go func(rc <-chan *RemoteResponse) { + for { + b := <-rc + reader := bytes.NewReader(b.Value) + v.unmarshalReader(reader, v.kvstore) + } + }(respc) + return nil + } + return RemoteConfigError("No Files Found") +} + +// Retrieve the first found remote configuration. +func (v *Viper) watchKeyValueConfig() error { + for _, rp := range v.remoteProviders { + val, err := v.watchRemoteConfig(rp) + if err != nil { + continue + } + v.kvstore = val + return nil + } + return RemoteConfigError("No Files Found") +} + +func (v *Viper) watchRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { + reader, err := RemoteConfig.Watch(provider) + if err != nil { + return nil, err + } + err = v.unmarshalReader(reader, v.kvstore) + return v.kvstore, err +} + +// AllKeys returns all keys holding a value, regardless of where they are set. +// Nested keys are returned with a v.keyDelim separator +func AllKeys() []string { return v.AllKeys() } +func (v *Viper) AllKeys() []string { + m := map[string]bool{} + // add all paths, by order of descending priority to ensure correct shadowing + m = v.flattenAndMergeMap(m, castMapStringToMapInterface(v.aliases), "") + m = v.flattenAndMergeMap(m, v.override, "") + m = v.mergeFlatMap(m, castMapFlagToMapInterface(v.pflags)) + m = v.mergeFlatMap(m, castMapStringToMapInterface(v.env)) + m = v.flattenAndMergeMap(m, v.config, "") + m = v.flattenAndMergeMap(m, v.kvstore, "") + m = v.flattenAndMergeMap(m, v.defaults, "") + + // convert set of paths to list + a := make([]string, 0, len(m)) + for x := range m { + a = append(a, x) + } + return a +} + +// flattenAndMergeMap recursively flattens the given map into a map[string]bool +// of key paths (used as a set, easier to manipulate than a []string): +// - each path is merged into a single key string, delimited with v.keyDelim +// - if a path is shadowed by an earlier value in the initial shadow map, +// it is skipped. +// The resulting set of paths is merged to the given shadow set at the same time. +func (v *Viper) flattenAndMergeMap(shadow map[string]bool, m map[string]interface{}, prefix string) map[string]bool { + if shadow != nil && prefix != "" && shadow[prefix] { + // prefix is shadowed => nothing more to flatten + return shadow + } + if shadow == nil { + shadow = make(map[string]bool) + } + + var m2 map[string]interface{} + if prefix != "" { + prefix += v.keyDelim + } + for k, val := range m { + fullKey := prefix + k + switch val.(type) { + case map[string]interface{}: + m2 = val.(map[string]interface{}) + case map[interface{}]interface{}: + m2 = cast.ToStringMap(val) + default: + // immediate value + shadow[strings.ToLower(fullKey)] = true + continue + } + // recursively merge to shadow map + shadow = v.flattenAndMergeMap(shadow, m2, fullKey) + } + return shadow +} + +// mergeFlatMap merges the given maps, excluding values of the second map +// shadowed by values from the first map. +func (v *Viper) mergeFlatMap(shadow map[string]bool, m map[string]interface{}) map[string]bool { + // scan keys +outer: + for k := range m { + path := strings.Split(k, v.keyDelim) + // scan intermediate paths + var parentKey string + for i := 1; i < len(path); i++ { + parentKey = strings.Join(path[0:i], v.keyDelim) + if shadow[parentKey] { + // path is shadowed, continue + continue outer + } + } + // add key + shadow[strings.ToLower(k)] = true + } + return shadow +} + +// AllSettings merges all settings and returns them as a map[string]interface{}. +func AllSettings() map[string]interface{} { return v.AllSettings() } +func (v *Viper) AllSettings() map[string]interface{} { + m := map[string]interface{}{} + // start from the list of keys, and construct the map one value at a time + for _, k := range v.AllKeys() { + value := v.Get(k) + if value == nil { + // should not happen, since AllKeys() returns only keys holding a value, + // check just in case anything changes + continue + } + path := strings.Split(k, v.keyDelim) + lastKey := strings.ToLower(path[len(path)-1]) + deepestMap := deepSearch(m, path[0:len(path)-1]) + // set innermost value + deepestMap[lastKey] = value + } + return m +} + +// SetFs sets the filesystem to use to read configuration. +func SetFs(fs afero.Fs) { v.SetFs(fs) } +func (v *Viper) SetFs(fs afero.Fs) { + v.fs = fs +} + +// SetConfigName sets name for the config file. +// Does not include extension. +func SetConfigName(in string) { v.SetConfigName(in) } +func (v *Viper) SetConfigName(in string) { + if in != "" { + v.configName = in + v.configFile = "" + } +} + +// SetConfigType sets the type of the configuration returned by the +// remote source, e.g. "json". +func SetConfigType(in string) { v.SetConfigType(in) } +func (v *Viper) SetConfigType(in string) { + if in != "" { + v.configType = in + } +} + +// SetConfigPermissions sets the permissions for the config file. +func SetConfigPermissions(perm os.FileMode) { v.SetConfigPermissions(perm) } +func (v *Viper) SetConfigPermissions(perm os.FileMode) { + v.configPermissions = perm.Perm() +} + +func (v *Viper) getConfigType() string { + if v.configType != "" { + return v.configType + } + + cf, err := v.getConfigFile() + if err != nil { + return "" + } + + ext := filepath.Ext(cf) + + if len(ext) > 1 { + return ext[1:] + } + + return "" +} + +func (v *Viper) getConfigFile() (string, error) { + if v.configFile == "" { + cf, err := v.findConfigFile() + if err != nil { + return "", err + } + v.configFile = cf + } + return v.configFile, nil +} + +func (v *Viper) searchInPath(in string) (filename string) { + jww.DEBUG.Println("Searching for config in ", in) + for _, ext := range SupportedExts { + jww.DEBUG.Println("Checking for", filepath.Join(in, v.configName+"."+ext)) + if b, _ := exists(v.fs, filepath.Join(in, v.configName+"."+ext)); b { + jww.DEBUG.Println("Found: ", filepath.Join(in, v.configName+"."+ext)) + return filepath.Join(in, v.configName+"."+ext) + } + } + + if v.configType != "" { + if b, _ := exists(v.fs, filepath.Join(in, v.configName)); b { + return filepath.Join(in, v.configName) + } + } + + return "" +} + +// Search all configPaths for any config file. +// Returns the first path that exists (and is a config file). +func (v *Viper) findConfigFile() (string, error) { + jww.INFO.Println("Searching for config in ", v.configPaths) + + for _, cp := range v.configPaths { + file := v.searchInPath(cp) + if file != "" { + return file, nil + } + } + return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)} +} + +// Debug prints all configuration registries for debugging +// purposes. +func Debug() { v.Debug() } +func (v *Viper) Debug() { + fmt.Printf("Aliases:\n%#v\n", v.aliases) + fmt.Printf("Override:\n%#v\n", v.override) + fmt.Printf("PFlags:\n%#v\n", v.pflags) + fmt.Printf("Env:\n%#v\n", v.env) + fmt.Printf("Key/Value Store:\n%#v\n", v.kvstore) + fmt.Printf("Config:\n%#v\n", v.config) + fmt.Printf("Defaults:\n%#v\n", v.defaults) +} diff --git a/vendor/github.com/subosito/gotenv/.env b/vendor/github.com/subosito/gotenv/.env new file mode 100644 index 0000000..6405eca --- /dev/null +++ b/vendor/github.com/subosito/gotenv/.env @@ -0,0 +1 @@ +HELLO=world diff --git a/vendor/github.com/subosito/gotenv/.env.invalid b/vendor/github.com/subosito/gotenv/.env.invalid new file mode 100644 index 0000000..016d5e0 --- /dev/null +++ b/vendor/github.com/subosito/gotenv/.env.invalid @@ -0,0 +1 @@ +lol$wut diff --git a/vendor/github.com/subosito/gotenv/.gitignore b/vendor/github.com/subosito/gotenv/.gitignore new file mode 100644 index 0000000..2b8d456 --- /dev/null +++ b/vendor/github.com/subosito/gotenv/.gitignore @@ -0,0 +1,3 @@ +*.test +*.out +annotate.json diff --git a/vendor/github.com/subosito/gotenv/.travis.yml b/vendor/github.com/subosito/gotenv/.travis.yml new file mode 100644 index 0000000..3370d5f --- /dev/null +++ b/vendor/github.com/subosito/gotenv/.travis.yml @@ -0,0 +1,10 @@ +language: go +go: + - 1.x +os: + - linux + - osx +script: + - go test -test.v -coverprofile=coverage.out -covermode=count +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/subosito/gotenv/CHANGELOG.md b/vendor/github.com/subosito/gotenv/CHANGELOG.md new file mode 100644 index 0000000..67f6873 --- /dev/null +++ b/vendor/github.com/subosito/gotenv/CHANGELOG.md @@ -0,0 +1,47 @@ +# Changelog + +## [1.2.0] - 2019-08-03 + +### Added + +- Add `Must` helper to raise an error as panic. It can be used with `Load` and `OverLoad`. +- Add more tests to be 100% coverage. +- Add CHANGELOG +- Add more OS for the test: OSX and Windows + +### Changed + +- Reduce complexity and improve source code for having `A+` score in [goreportcard](https://goreportcard.com/report/github.com/subosito/gotenv). +- Updated README with mentions to all available functions + +### Removed + +- Remove `ErrFormat` +- Remove `MustLoad` and `MustOverload`, replaced with `Must` helper. + +## [1.1.1] - 2018-06-05 + +### Changed + +- Replace `os.Getenv` with `os.LookupEnv` to ensure that the environment variable is not set, by [radding](https://github.com/radding) + +## [1.1.0] - 2017-03-20 + +### Added + +- Supports carriage return in env +- Handle files with UTF-8 BOM + +### Changed + +- Whitespace handling + +### Fixed + +- Incorrect variable expansion +- Handling escaped '$' characters + +## [1.0.0] - 2014-10-05 + +First stable release. + diff --git a/vendor/github.com/subosito/gotenv/LICENSE b/vendor/github.com/subosito/gotenv/LICENSE new file mode 100644 index 0000000..f64ccae --- /dev/null +++ b/vendor/github.com/subosito/gotenv/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 Alif Rachmawadi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/subosito/gotenv/README.md b/vendor/github.com/subosito/gotenv/README.md new file mode 100644 index 0000000..d610cdf --- /dev/null +++ b/vendor/github.com/subosito/gotenv/README.md @@ -0,0 +1,131 @@ +# gotenv + +[![Build Status](https://travis-ci.org/subosito/gotenv.svg?branch=master)](https://travis-ci.org/subosito/gotenv) +[![Build status](https://ci.appveyor.com/api/projects/status/wb2e075xkfl0m0v2/branch/master?svg=true)](https://ci.appveyor.com/project/subosito/gotenv/branch/master) +[![Coverage Status](https://badgen.net/codecov/c/github/subosito/gotenv)](https://codecov.io/gh/subosito/gotenv) +[![Go Report Card](https://goreportcard.com/badge/github.com/subosito/gotenv)](https://goreportcard.com/report/github.com/subosito/gotenv) +[![GoDoc](https://godoc.org/github.com/subosito/gotenv?status.svg)](https://godoc.org/github.com/subosito/gotenv) + +Load environment variables dynamically in Go. + +## Usage + +Put the gotenv package on your `import` statement: + +```go +import "github.com/subosito/gotenv" +``` + +To modify your app environment variables, `gotenv` expose 2 main functions: + +- `gotenv.Load` +- `gotenv.Apply` + +By default, `gotenv.Load` will look for a file called `.env` in the current working directory. + +Behind the scene, it will then load `.env` file and export the valid variables to the environment variables. Make sure you call the method as soon as possible to ensure it loads all variables, say, put it on `init()` function. + +Once loaded you can use `os.Getenv()` to get the value of the variable. + +Let's say you have `.env` file: + +``` +APP_ID=1234567 +APP_SECRET=abcdef +``` + +Here's the example of your app: + +```go +package main + +import ( + "github.com/subosito/gotenv" + "log" + "os" +) + +func init() { + gotenv.Load() +} + +func main() { + log.Println(os.Getenv("APP_ID")) // "1234567" + log.Println(os.Getenv("APP_SECRET")) // "abcdef" +} +``` + +You can also load other than `.env` file if you wish. Just supply filenames when calling `Load()`. It will load them in order and the first value set for a variable will win.: + +```go +gotenv.Load(".env.production", "credentials") +``` + +While `gotenv.Load` loads entries from `.env` file, `gotenv.Apply` allows you to use any `io.Reader`: + +```go +gotenv.Apply(strings.NewReader("APP_ID=1234567")) + +log.Println(os.Getenv("APP_ID")) +// Output: "1234567" +``` + +Both `gotenv.Load` and `gotenv.Apply` **DO NOT** overrides existing environment variables. If you want to override existing ones, you can see section below. + +### Environment Overrides + +Besides above functions, `gotenv` also provides another functions that overrides existing: + +- `gotenv.OverLoad` +- `gotenv.OverApply` + + +Here's the example of this overrides behavior: + +```go +os.Setenv("HELLO", "world") + +// NOTE: using Apply existing value will be reserved +gotenv.Apply(strings.NewReader("HELLO=universe")) +fmt.Println(os.Getenv("HELLO")) +// Output: "world" + +// NOTE: using OverApply existing value will be overridden +gotenv.OverApply(strings.NewReader("HELLO=universe")) +fmt.Println(os.Getenv("HELLO")) +// Output: "universe" +``` + +### Throw a Panic + +Both `gotenv.Load` and `gotenv.OverLoad` returns an error on something wrong occurred, like your env file is not exist, and so on. To make it easier to use, `gotenv` also provides `gotenv.Must` helper, to let it panic when an error returned. + +```go +err := gotenv.Load(".env-is-not-exist") +fmt.Println("error", err) +// error: open .env-is-not-exist: no such file or directory + +gotenv.Must(gotenv.Load, ".env-is-not-exist") +// it will throw a panic +// panic: open .env-is-not-exist: no such file or directory +``` + +### Another Scenario + +Just in case you want to parse environment variables from any `io.Reader`, gotenv keeps its `Parse` and `StrictParse` function as public API so you can use that. + +```go +// import "strings" + +pairs := gotenv.Parse(strings.NewReader("FOO=test\nBAR=$FOO")) +// gotenv.Env{"FOO": "test", "BAR": "test"} + +err, pairs = gotenv.StrictParse(strings.NewReader(`FOO="bar"`)) +// gotenv.Env{"FOO": "bar"} +``` + +`Parse` ignores invalid lines and returns `Env` of valid environment variables, while `StrictParse` returns an error for invalid lines. + +## Notes + +The gotenv package is a Go port of [`dotenv`](https://github.com/bkeepers/dotenv) project with some additions made for Go. For general features, it aims to be compatible as close as possible. diff --git a/vendor/github.com/subosito/gotenv/appveyor.yml b/vendor/github.com/subosito/gotenv/appveyor.yml new file mode 100644 index 0000000..33b4c40 --- /dev/null +++ b/vendor/github.com/subosito/gotenv/appveyor.yml @@ -0,0 +1,9 @@ +build: off +clone_folder: c:\gopath\src\github.com\subosito\gotenv +environment: + GOPATH: c:\gopath +stack: go 1.10 +before_test: + - go get -t +test_script: + - go test -v -cover -race diff --git a/vendor/github.com/subosito/gotenv/gotenv.go b/vendor/github.com/subosito/gotenv/gotenv.go new file mode 100644 index 0000000..745a344 --- /dev/null +++ b/vendor/github.com/subosito/gotenv/gotenv.go @@ -0,0 +1,265 @@ +// Package gotenv provides functionality to dynamically load the environment variables +package gotenv + +import ( + "bufio" + "fmt" + "io" + "os" + "regexp" + "strings" +) + +const ( + // Pattern for detecting valid line format + linePattern = `\A\s*(?:export\s+)?([\w\.]+)(?:\s*=\s*|:\s+?)('(?:\'|[^'])*'|"(?:\"|[^"])*"|[^#\n]+)?\s*(?:\s*\#.*)?\z` + + // Pattern for detecting valid variable within a value + variablePattern = `(\\)?(\$)(\{?([A-Z0-9_]+)?\}?)` +) + +// Env holds key/value pair of valid environment variable +type Env map[string]string + +/* +Load is a function to load a file or multiple files and then export the valid variables into environment variables if they do not exist. +When it's called with no argument, it will load `.env` file on the current path and set the environment variables. +Otherwise, it will loop over the filenames parameter and set the proper environment variables. +*/ +func Load(filenames ...string) error { + return loadenv(false, filenames...) +} + +/* +OverLoad is a function to load a file or multiple files and then export and override the valid variables into environment variables. +*/ +func OverLoad(filenames ...string) error { + return loadenv(true, filenames...) +} + +/* +Must is wrapper function that will panic when supplied function returns an error. +*/ +func Must(fn func(filenames ...string) error, filenames ...string) { + if err := fn(filenames...); err != nil { + panic(err.Error()) + } +} + +/* +Apply is a function to load an io Reader then export the valid variables into environment variables if they do not exist. +*/ +func Apply(r io.Reader) error { + return parset(r, false) +} + +/* +OverApply is a function to load an io Reader then export and override the valid variables into environment variables. +*/ +func OverApply(r io.Reader) error { + return parset(r, true) +} + +func loadenv(override bool, filenames ...string) error { + if len(filenames) == 0 { + filenames = []string{".env"} + } + + for _, filename := range filenames { + f, err := os.Open(filename) + if err != nil { + return err + } + + err = parset(f, override) + if err != nil { + return err + } + + f.Close() + } + + return nil +} + +// parse and set :) +func parset(r io.Reader, override bool) error { + env, err := StrictParse(r) + if err != nil { + return err + } + + for key, val := range env { + setenv(key, val, override) + } + + return nil +} + +func setenv(key, val string, override bool) { + if override { + os.Setenv(key, val) + } else { + if _, present := os.LookupEnv(key); !present { + os.Setenv(key, val) + } + } +} + +// Parse is a function to parse line by line any io.Reader supplied and returns the valid Env key/value pair of valid variables. +// It expands the value of a variable from the environment variable but does not set the value to the environment itself. +// This function is skipping any invalid lines and only processing the valid one. +func Parse(r io.Reader) Env { + env, _ := StrictParse(r) + return env +} + +// StrictParse is a function to parse line by line any io.Reader supplied and returns the valid Env key/value pair of valid variables. +// It expands the value of a variable from the environment variable but does not set the value to the environment itself. +// This function is returning an error if there are any invalid lines. +func StrictParse(r io.Reader) (Env, error) { + env := make(Env) + scanner := bufio.NewScanner(r) + + i := 1 + bom := string([]byte{239, 187, 191}) + + for scanner.Scan() { + line := scanner.Text() + + if i == 1 { + line = strings.TrimPrefix(line, bom) + } + + i++ + + err := parseLine(line, env) + if err != nil { + return env, err + } + } + + return env, nil +} + +func parseLine(s string, env Env) error { + rl := regexp.MustCompile(linePattern) + rm := rl.FindStringSubmatch(s) + + if len(rm) == 0 { + return checkFormat(s, env) + } + + key := rm[1] + val := rm[2] + + // determine if string has quote prefix + hdq := strings.HasPrefix(val, `"`) + + // determine if string has single quote prefix + hsq := strings.HasPrefix(val, `'`) + + // trim whitespace + val = strings.Trim(val, " ") + + // remove quotes '' or "" + rq := regexp.MustCompile(`\A(['"])(.*)(['"])\z`) + val = rq.ReplaceAllString(val, "$2") + + if hdq { + val = strings.Replace(val, `\n`, "\n", -1) + val = strings.Replace(val, `\r`, "\r", -1) + + // Unescape all characters except $ so variables can be escaped properly + re := regexp.MustCompile(`\\([^$])`) + val = re.ReplaceAllString(val, "$1") + } + + rv := regexp.MustCompile(variablePattern) + fv := func(s string) string { + return varReplacement(s, hsq, env) + } + + val = rv.ReplaceAllStringFunc(val, fv) + val = parseVal(val, env) + + env[key] = val + return nil +} + +func parseExport(st string, env Env) error { + if strings.HasPrefix(st, "export") { + vs := strings.SplitN(st, " ", 2) + + if len(vs) > 1 { + if _, ok := env[vs[1]]; !ok { + return fmt.Errorf("line `%s` has an unset variable", st) + } + } + } + + return nil +} + +func varReplacement(s string, hsq bool, env Env) string { + if strings.HasPrefix(s, "\\") { + return strings.TrimPrefix(s, "\\") + } + + if hsq { + return s + } + + sn := `(\$)(\{?([A-Z0-9_]+)\}?)` + rn := regexp.MustCompile(sn) + mn := rn.FindStringSubmatch(s) + + if len(mn) == 0 { + return s + } + + v := mn[3] + + replace, ok := env[v] + if !ok { + replace = os.Getenv(v) + } + + return replace +} + +func checkFormat(s string, env Env) error { + st := strings.TrimSpace(s) + + if (st == "") || strings.HasPrefix(st, "#") { + return nil + } + + if err := parseExport(st, env); err != nil { + return err + } + + return fmt.Errorf("line `%s` doesn't match format", s) +} + +func parseVal(val string, env Env) string { + if strings.Contains(val, "=") { + if !(val == "\n" || val == "\r") { + kv := strings.Split(val, "\n") + + if len(kv) == 1 { + kv = strings.Split(val, "\r") + } + + if len(kv) > 1 { + val = kv[0] + + for i := 1; i < len(kv); i++ { + parseLine(kv[i], env) + } + } + } + } + + return val +} diff --git a/vendor/golang.org/x/sys/AUTHORS b/vendor/golang.org/x/sys/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/golang.org/x/sys/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/sys/CONTRIBUTORS b/vendor/golang.org/x/sys/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/golang.org/x/sys/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/sys/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/sys/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go new file mode 100644 index 0000000..e07899b --- /dev/null +++ b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go @@ -0,0 +1,30 @@ +// 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 unsafeheader contains header declarations for the Go runtime's +// slice and string implementations. +// +// This package allows x/sys to use types equivalent to +// reflect.SliceHeader and reflect.StringHeader without introducing +// a dependency on the (relatively heavy) "reflect" package. +package unsafeheader + +import ( + "unsafe" +) + +// Slice is the runtime representation of a slice. +// It cannot be used safely or portably and its representation may change in a later release. +type Slice struct { + Data unsafe.Pointer + Len int + Cap int +} + +// String is the runtime representation of a string. +// It cannot be used safely or portably and its representation may change in a later release. +type String struct { + Data unsafe.Pointer + Len int +} diff --git a/vendor/golang.org/x/sys/unix/.gitignore b/vendor/golang.org/x/sys/unix/.gitignore new file mode 100644 index 0000000..e3e0fc6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/.gitignore @@ -0,0 +1,2 @@ +_obj/ +unix.test diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md new file mode 100644 index 0000000..579d2d7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/README.md @@ -0,0 +1,184 @@ +# Building `sys/unix` + +The sys/unix package provides access to the raw system call interface of the +underlying operating system. See: https://godoc.org/golang.org/x/sys/unix + +Porting Go to a new architecture/OS combination or adding syscalls, types, or +constants to an existing architecture/OS pair requires some manual effort; +however, there are tools that automate much of the process. + +## Build Systems + +There are currently two ways we generate the necessary files. We are currently +migrating the build system to use containers so the builds are reproducible. +This is being done on an OS-by-OS basis. Please update this documentation as +components of the build system change. + +### Old Build System (currently for `GOOS != "linux"`) + +The old build system generates the Go files based on the C header files +present on your system. This means that files +for a given GOOS/GOARCH pair must be generated on a system with that OS and +architecture. This also means that the generated code can differ from system +to system, based on differences in the header files. + +To avoid this, if you are using the old build system, only generate the Go +files on an installation with unmodified header files. It is also important to +keep track of which version of the OS the files were generated from (ex. +Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes +and have each OS upgrade correspond to a single change. + +To build the files for your current OS and architecture, make sure GOOS and +GOARCH are set correctly and run `mkall.sh`. This will generate the files for +your specific system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go + +### New Build System (currently for `GOOS == "linux"`) + +The new build system uses a Docker container to generate the go files directly +from source checkouts of the kernel and various system libraries. This means +that on any platform that supports Docker, all the files using the new build +system can be generated at once, and generated files will not change based on +what the person running the scripts has installed on their computer. + +The OS specific files for the new build system are located in the `${GOOS}` +directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When +the kernel or system library updates, modify the Dockerfile at +`${GOOS}/Dockerfile` to checkout the new release of the source. + +To build all the files under the new build system, you must be on an amd64/Linux +system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will +then generate all of the files for all of the GOOS/GOARCH pairs in the new build +system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go, docker + +## Component files + +This section describes the various files used in the code generation process. +It also contains instructions on how to modify these files to add a new +architecture/OS or to add additional syscalls, types, or constants. Note that +if you are using the new build system, the scripts/programs cannot be called normally. +They must be called from within the docker container. + +### asm files + +The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system +call dispatch. There are three entry points: +``` + func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) + func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) + func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +``` +The first and second are the standard ones; they differ only in how many +arguments can be passed to the kernel. The third is for low-level use by the +ForkExec wrapper. Unlike the first two, it does not call into the scheduler to +let it know that a system call is running. + +When porting Go to an new architecture/OS, this file must be implemented for +each GOOS/GOARCH pair. + +### mksysnum + +Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` +for the old system). This program takes in a list of header files containing the +syscall number declarations and parses them to produce the corresponding list of +Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated +constants. + +Adding new syscall numbers is mostly done by running the build on a sufficiently +new installation of the target OS (or updating the source checkouts for the +new build system). However, depending on the OS, you may need to update the +parsing in mksysnum. + +### mksyscall.go + +The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are +hand-written Go files which implement system calls (for unix, the specific OS, +or the specific OS/Architecture pair respectively) that need special handling +and list `//sys` comments giving prototypes for ones that can be generated. + +The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts +them into syscalls. This requires the name of the prototype in the comment to +match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function +prototype can be exported (capitalized) or not. + +Adding a new syscall often just requires adding a new `//sys` function prototype +with the desired arguments and a capitalized name so it is exported. However, if +you want the interface to the syscall to be different, often one will make an +unexported `//sys` prototype, an then write a custom wrapper in +`syscall_${GOOS}.go`. + +### types files + +For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or +`types_${GOOS}.go` on the old system). This file includes standard C headers and +creates Go type aliases to the corresponding C types. The file is then fed +through godef to get the Go compatible definitions. Finally, the generated code +is fed though mkpost.go to format the code correctly and remove any hidden or +private identifiers. This cleaned-up code is written to +`ztypes_${GOOS}_${GOARCH}.go`. + +The hardest part about preparing this file is figuring out which headers to +include and which symbols need to be `#define`d to get the actual data +structures that pass through to the kernel system calls. Some C libraries +preset alternate versions for binary compatibility and translate them on the +way in and out of system calls, but there is almost always a `#define` that can +get the real ones. +See `types_darwin.go` and `linux/types.go` for examples. + +To add a new type, add in the necessary include statement at the top of the +file (if it is not already there) and add in a type alias line. Note that if +your type is significantly different on different architectures, you may need +some `#if/#elif` macros in your include statements. + +### mkerrors.sh + +This script is used to generate the system's various constants. This doesn't +just include the error numbers and error strings, but also the signal numbers +an a wide variety of miscellaneous constants. The constants come from the list +of include files in the `includes_${uname}` variable. A regex then picks out +the desired `#define` statements, and generates the corresponding Go constants. +The error numbers and strings are generated from `#include `, and the +signal numbers and strings are generated from `#include `. All of +these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, +`_errors.c`, which prints out all the constants. + +To add a constant, add the header that includes it to the appropriate variable. +Then, edit the regex (if necessary) to match the desired constant. Avoid making +the regex too broad to avoid matching unintended constants. + +### mkmerge.go + +This program is used to extract duplicate const, func, and type declarations +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. +2. Write this common code to the merged file. +3. Remove the common code from all architecture-specific files. + + +## Generated files + +### `zerrors_${GOOS}_${GOARCH}.go` + +A file containing all of the system's generated error numbers, error strings, +signal numbers, and constants. Generated by `mkerrors.sh` (see above). + +### `zsyscall_${GOOS}_${GOARCH}.go` + +A file containing all the generated syscalls for a specific GOOS and GOARCH. +Generated by `mksyscall.go` (see above). + +### `zsysnum_${GOOS}_${GOARCH}.go` + +A list of numeric constants for all the syscall number of the specific GOOS +and GOARCH. Generated by mksysnum (see above). + +### `ztypes_${GOOS}_${GOARCH}.go` + +A file containing Go types for passing into (or returning from) syscalls. +Generated by godefs and the types file (see above). diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go new file mode 100644 index 0000000..6e5c81a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -0,0 +1,86 @@ +// Copyright 2018 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. + +// CPU affinity functions + +package unix + +import ( + "math/bits" + "unsafe" +) + +const cpuSetSize = _CPU_SETSIZE / _NCPUBITS + +// CPUSet represents a CPU affinity mask. +type CPUSet [cpuSetSize]cpuMask + +func schedAffinity(trap uintptr, pid int, set *CPUSet) error { + _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) + if e != 0 { + return errnoErr(e) + } + return nil +} + +// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedGetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) +} + +// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedSetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) +} + +// Zero clears the set s, so that it contains no CPUs. +func (s *CPUSet) Zero() { + for i := range s { + s[i] = 0 + } +} + +func cpuBitsIndex(cpu int) int { + return cpu / _NCPUBITS +} + +func cpuBitsMask(cpu int) cpuMask { + return cpuMask(1 << (uint(cpu) % _NCPUBITS)) +} + +// Set adds cpu to the set s. +func (s *CPUSet) Set(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] |= cpuBitsMask(cpu) + } +} + +// Clear removes cpu from the set s. +func (s *CPUSet) Clear(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] &^= cpuBitsMask(cpu) + } +} + +// IsSet reports whether cpu is in the set s. +func (s *CPUSet) IsSet(cpu int) bool { + i := cpuBitsIndex(cpu) + if i < len(s) { + return s[i]&cpuBitsMask(cpu) != 0 + } + return false +} + +// Count returns the number of CPUs in the set s. +func (s *CPUSet) Count() int { + c := 0 + for _, b := range s { + c += bits.OnesCount64(uint64(b)) + } + return c +} diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go new file mode 100644 index 0000000..951fce4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/aliases.go @@ -0,0 +1,14 @@ +// Copyright 2018 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +// +build go1.9 + +package unix + +import "syscall" + +type Signal = syscall.Signal +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s new file mode 100644 index 0000000..6b4027b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s @@ -0,0 +1,17 @@ +// Copyright 2018 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. + +// +build gc + +#include "textflag.h" + +// +// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go +// + +TEXT ·syscall6(SB),NOSPLIT,$0-88 + JMP syscall·syscall6(SB) + +TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s new file mode 100644 index 0000000..8a06b87 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_darwin_386.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for 386, Darwin +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s new file mode 100644 index 0000000..f2397fd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for AMD64, Darwin +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s new file mode 100644 index 0000000..c9e6b6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s @@ -0,0 +1,30 @@ +// 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. + +// +build gc +// +build arm,darwin + +#include "textflag.h" + +// +// System call support for ARM, Darwin +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s new file mode 100644 index 0000000..89843f8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s @@ -0,0 +1,30 @@ +// 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. + +// +build gc +// +build arm64,darwin + +#include "textflag.h" + +// +// System call support for AMD64, Darwin +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s new file mode 100644 index 0000000..27674e1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for AMD64, DragonFly +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s new file mode 100644 index 0000000..49f0ac2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for 386, FreeBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s new file mode 100644 index 0000000..f2dfc57 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for AMD64, FreeBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s new file mode 100644 index 0000000..6d740db --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s @@ -0,0 +1,29 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for ARM, FreeBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s new file mode 100644 index 0000000..a8f5a29 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s @@ -0,0 +1,29 @@ +// Copyright 2018 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for ARM64, FreeBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s new file mode 100644 index 0000000..0655ecb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s @@ -0,0 +1,65 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System calls for 386, Linux +// + +// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 +// instead of the glibc-specific "CALL 0x10(GS)". +#define INVOKE_SYSCALL INT $0x80 + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + CALL runtime·entersyscall(SB) + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + RET + +TEXT ·socketcall(SB),NOSPLIT,$0-36 + JMP syscall·socketcall(SB) + +TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 + JMP syscall·rawsocketcall(SB) + +TEXT ·seek(SB),NOSPLIT,$0-28 + JMP syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s new file mode 100644 index 0000000..bc3fb6a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s @@ -0,0 +1,57 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System calls for AMD64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + RET + +TEXT ·gettimeofday(SB),NOSPLIT,$0-16 + JMP syscall·gettimeofday(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s new file mode 100644 index 0000000..55b13c7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s @@ -0,0 +1,56 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System calls for arm, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + BL runtime·entersyscall(SB) + MOVW trap+0(FP), R7 + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + MOVW $0, R3 + MOVW $0, R4 + MOVW $0, R5 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW trap+0(FP), R7 // syscall entry + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + RET + +TEXT ·seek(SB),NOSPLIT,$0-28 + B syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s new file mode 100644 index 0000000..22a83d8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s @@ -0,0 +1,52 @@ +// 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. + +// +build linux +// +build arm64 +// +build gc + +#include "textflag.h" + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + B syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) // r1 + MOVD R1, r2+40(FP) // r2 + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) + MOVD R1, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s new file mode 100644 index 0000000..dc222b9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s @@ -0,0 +1,56 @@ +// 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. + +// +build linux +// +build mips64 mips64le +// +build gc + +#include "textflag.h" + +// +// System calls for mips64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + JAL runtime·entersyscall(SB) + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s new file mode 100644 index 0000000..d333f13 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -0,0 +1,54 @@ +// 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. + +// +build linux +// +build mips mipsle +// +build gc + +#include "textflag.h" + +// +// System calls for mips, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + JAL runtime·entersyscall(SB) + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW R0, R7 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) // r1 + MOVW R3, r2+20(FP) // r2 + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) + MOVW R3, r2+20(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s new file mode 100644 index 0000000..459a629 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -0,0 +1,44 @@ +// 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. + +// +build linux +// +build ppc64 ppc64le +// +build gc + +#include "textflag.h" + +// +// System calls for ppc64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s new file mode 100644 index 0000000..04d3849 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s @@ -0,0 +1,47 @@ +// 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. + +// +build riscv64,gc + +#include "textflag.h" + +// +// System calls for linux/riscv64. +// +// Where available, just jump to package syscall's implementation of +// these functions. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) // r1 + MOV A1, r2+40(FP) // r2 + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) + MOV A1, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s new file mode 100644 index 0000000..cc30398 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s @@ -0,0 +1,56 @@ +// 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. + +// +build s390x +// +build linux +// +build gc + +#include "textflag.h" + +// +// System calls for s390x, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + BR syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + BR syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + BR syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + BR syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s new file mode 100644 index 0000000..ae7b498 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for 386, NetBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s new file mode 100644 index 0000000..e57367c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for AMD64, NetBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s new file mode 100644 index 0000000..d7da175 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s @@ -0,0 +1,29 @@ +// Copyright 2013 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for ARM, NetBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s new file mode 100644 index 0000000..e7cbe19 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s @@ -0,0 +1,29 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for ARM64, NetBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s new file mode 100644 index 0000000..2f00b03 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for 386, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s new file mode 100644 index 0000000..07632c9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2009 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for AMD64, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s new file mode 100644 index 0000000..73e9973 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s @@ -0,0 +1,29 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for ARM, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s new file mode 100644 index 0000000..c47302a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s @@ -0,0 +1,29 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for arm64, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s new file mode 100644 index 0000000..47c93fc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s @@ -0,0 +1,29 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System call support for mips64, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s new file mode 100644 index 0000000..1f2c755 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s @@ -0,0 +1,17 @@ +// 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. + +// +build gc + +#include "textflag.h" + +// +// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go +// + +TEXT ·sysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·sysvicall6(SB) + +TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSysvicall6(SB) diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go new file mode 100644 index 0000000..a178a61 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go @@ -0,0 +1,36 @@ +// 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. + +// Bluetooth sockets and messages + +package unix + +// Bluetooth Protocols +const ( + BTPROTO_L2CAP = 0 + BTPROTO_HCI = 1 + BTPROTO_SCO = 2 + BTPROTO_RFCOMM = 3 + BTPROTO_BNEP = 4 + BTPROTO_CMTP = 5 + BTPROTO_HIDP = 6 + BTPROTO_AVDTP = 7 +) + +const ( + HCI_CHANNEL_RAW = 0 + HCI_CHANNEL_USER = 1 + HCI_CHANNEL_MONITOR = 2 + HCI_CHANNEL_CONTROL = 3 + HCI_CHANNEL_LOGGING = 4 +) + +// Socketoption Level +const ( + SOL_BLUETOOTH = 0x112 + SOL_HCI = 0x0 + SOL_L2CAP = 0x6 + SOL_RFCOMM = 0x12 + SOL_SCO = 0x11 +) diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go new file mode 100644 index 0000000..df52048 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go @@ -0,0 +1,195 @@ +// 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. + +// +build freebsd + +package unix + +import ( + "errors" + "fmt" +) + +// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c + +const ( + // This is the version of CapRights this package understands. See C implementation for parallels. + capRightsGoVersion = CAP_RIGHTS_VERSION_00 + capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 + capArSizeMax = capRightsGoVersion + 2 +) + +var ( + bit2idx = []int{ + -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, + 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + } +) + +func capidxbit(right uint64) int { + return int((right >> 57) & 0x1f) +} + +func rightToIndex(right uint64) (int, error) { + idx := capidxbit(right) + if idx < 0 || idx >= len(bit2idx) { + return -2, fmt.Errorf("index for right 0x%x out of range", right) + } + return bit2idx[idx], nil +} + +func caprver(right uint64) int { + return int(right >> 62) +} + +func capver(rights *CapRights) int { + return caprver(rights.Rights[0]) +} + +func caparsize(rights *CapRights) int { + return capver(rights) + 2 +} + +// CapRightsSet sets the permissions in setrights in rights. +func CapRightsSet(rights *CapRights, setrights []uint64) error { + // This is essentially a copy of cap_rights_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] |= right + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsClear clears the permissions in clearrights from rights. +func CapRightsClear(rights *CapRights, clearrights []uint64) error { + // This is essentially a copy of cap_rights_vclear() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range clearrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsIsSet checks whether all the permissions in setrights are present in rights. +func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { + // This is essentially a copy of cap_rights_is_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return false, fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return false, errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return false, errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return false, err + } + if i >= n { + return false, errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return false, errors.New("index mismatch") + } + if (rights.Rights[i] & right) != right { + return false, nil + } + } + + return true, nil +} + +func capright(idx uint64, bit uint64) uint64 { + return ((1 << (57 + idx)) | bit) +} + +// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. +// See man cap_rights_init(3) and rights(4). +func CapRightsInit(rights []uint64) (*CapRights, error) { + var r CapRights + r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) + r.Rights[1] = capright(1, 0) + + err := CapRightsSet(&r, rights) + if err != nil { + return nil, err + } + return &r, nil +} + +// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. +// The capability rights on fd can never be increased by CapRightsLimit. +// See man cap_rights_limit(2) and rights(4). +func CapRightsLimit(fd uintptr, rights *CapRights) error { + return capRightsLimit(int(fd), rights) +} + +// CapRightsGet returns a CapRights structure containing the operations permitted on fd. +// See man cap_rights_get(3) and rights(4). +func CapRightsGet(fd uintptr) (*CapRights, error) { + r, err := CapRightsInit(nil) + if err != nil { + return nil, err + } + err = capRightsGet(capRightsGoVersion, int(fd), r) + if err != nil { + return nil, err + } + return r, nil +} diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go new file mode 100644 index 0000000..3a6ac64 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/constants.go @@ -0,0 +1,13 @@ +// 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +const ( + R_OK = 0x4 + W_OK = 0x2 + X_OK = 0x1 +) diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go new file mode 100644 index 0000000..5e5fb45 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go @@ -0,0 +1,27 @@ +// Copyright 2018 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. + +// +build aix +// +build ppc + +// Functions to access/create device major and minor numbers matching the +// encoding used by AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0xffff) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return uint64(((major) << 16) | (minor)) +} diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go new file mode 100644 index 0000000..8b40124 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go @@ -0,0 +1,29 @@ +// Copyright 2018 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. + +// +build aix +// +build ppc64 + +// Functions to access/create device major and minor numbers matching the +// encoding used AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x3fffffff00000000) >> 32) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32((dev & 0x00000000ffffffff) >> 0) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + var DEVNO64 uint64 + DEVNO64 = 0x8000000000000000 + return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) +} diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go new file mode 100644 index 0000000..8d1dc0f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_darwin.go @@ -0,0 +1,24 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Darwin's sys/types.h header. + +package unix + +// Major returns the major component of a Darwin device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 24) & 0xff) +} + +// Minor returns the minor component of a Darwin device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffffff) +} + +// Mkdev returns a Darwin device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 24) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go new file mode 100644 index 0000000..8502f20 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_dragonfly.go @@ -0,0 +1,30 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Dragonfly's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a DragonFlyBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a DragonFlyBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a DragonFlyBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go new file mode 100644 index 0000000..eba3b4b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_freebsd.go @@ -0,0 +1,30 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in FreeBSD's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a FreeBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a FreeBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a FreeBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go new file mode 100644 index 0000000..d165d6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_linux.go @@ -0,0 +1,42 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used by the Linux kernel and glibc. +// +// The information below is extracted and adapted from bits/sysmacros.h in the +// glibc sources: +// +// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's +// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major +// number and m is a hex digit of the minor number. This is backward compatible +// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also +// backward compatible with the Linux kernel, which for some architectures uses +// 32-bit dev_t, encoded as mmmM MMmm. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + major := uint32((dev & 0x00000000000fff00) >> 8) + major |= uint32((dev & 0xfffff00000000000) >> 32) + return major +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x00000000000000ff) >> 0) + minor |= uint32((dev & 0x00000ffffff00000) >> 12) + return minor +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) & 0x00000fff) << 8 + dev |= (uint64(major) & 0xfffff000) << 32 + dev |= (uint64(minor) & 0x000000ff) << 0 + dev |= (uint64(minor) & 0xffffff00) << 12 + return dev +} diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go new file mode 100644 index 0000000..b4a203d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_netbsd.go @@ -0,0 +1,29 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in NetBSD's sys/types.h header. + +package unix + +// Major returns the major component of a NetBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x000fff00) >> 8) +} + +// Minor returns the minor component of a NetBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xfff00000) >> 12) + return minor +} + +// Mkdev returns a NetBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x000fff00 + dev |= (uint64(minor) << 12) & 0xfff00000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go new file mode 100644 index 0000000..f3430c4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_openbsd.go @@ -0,0 +1,29 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in OpenBSD's sys/types.h header. + +package unix + +// Major returns the major component of an OpenBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x0000ff00) >> 8) +} + +// Minor returns the minor component of an OpenBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xffff0000) >> 8) + return minor +} + +// Mkdev returns an OpenBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x0000ff00 + dev |= (uint64(minor) << 8) & 0xffff0000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go new file mode 100644 index 0000000..304016b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -0,0 +1,102 @@ +// Copyright 2009 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +import "unsafe" + +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { + if len(b) < int(off+size) { + return 0, false + } + if isBigEndian { + return readIntBE(b[off:], size), true + } + return readIntLE(b[off:], size), true +} + +func readIntBE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[1]) | uint64(b[0])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | + uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} + +func readIntLE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} + +// ParseDirent parses up to max directory entries in buf, +// appending the names to names. It returns the number of +// bytes consumed from buf, the number of entries added +// to names, and the new names slice. +func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { + origlen := len(buf) + count = 0 + for max != 0 && len(buf) > 0 { + reclen, ok := direntReclen(buf) + if !ok || reclen > uint64(len(buf)) { + return origlen, count, names + } + rec := buf[:reclen] + buf = buf[reclen:] + ino, ok := direntIno(rec) + if !ok { + break + } + if ino == 0 { // File absent in directory. + continue + } + const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) + namlen, ok := direntNamlen(rec) + if !ok || namoff+namlen > uint64(len(rec)) { + break + } + name := rec[namoff : namoff+namlen] + for i, c := range name { + if c == 0 { + name = name[:i] + break + } + } + // Check for useless names before allocating a string. + if string(name) == "." || string(name) == ".." { + continue + } + max-- + count++ + names = append(names, string(name)) + } + return origlen - len(buf), count, names +} diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go new file mode 100644 index 0000000..86781ea --- /dev/null +++ b/vendor/golang.org/x/sys/unix/endian_big.go @@ -0,0 +1,9 @@ +// 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. +// +// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 + +package unix + +const isBigEndian = true diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go new file mode 100644 index 0000000..8822d85 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/endian_little.go @@ -0,0 +1,9 @@ +// 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. +// +// +build 386 amd64 amd64p32 alpha arm arm64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh + +package unix + +const isBigEndian = false diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go new file mode 100644 index 0000000..84178b0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/env_unix.go @@ -0,0 +1,31 @@ +// Copyright 2010 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +// Unix environment variables. + +package unix + +import "syscall" + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go new file mode 100644 index 0000000..761db66 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go @@ -0,0 +1,233 @@ +// 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. + +// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep +// them here for backwards compatibility. + +package unix + +const ( + DLT_HHDLC = 0x79 + IFF_SMART = 0x20 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BSC = 0x53 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IPPROTO_MAXID = 0x34 + IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f + IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f + MAP_NORESERVE = 0x40 + MAP_RENAME = 0x20 + NET_RT_MAXID = 0x6 + RTF_PRCLONING = 0x10000 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 + SIOCADDRT = 0x8030720a + SIOCALIFADDR = 0x8118691b + SIOCDELRT = 0x8030720b + SIOCDLIFADDR = 0x8118691d + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCSLIFPHYADDR = 0x8118694a +) diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go new file mode 100644 index 0000000..070f44b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go @@ -0,0 +1,233 @@ +// 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. + +// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep +// them here for backwards compatibility. + +package unix + +const ( + DLT_HHDLC = 0x79 + IFF_SMART = 0x20 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BSC = 0x53 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IPPROTO_MAXID = 0x34 + IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f + IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f + MAP_NORESERVE = 0x40 + MAP_RENAME = 0x20 + NET_RT_MAXID = 0x6 + RTF_PRCLONING = 0x10000 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 + SIOCADDRT = 0x8040720a + SIOCALIFADDR = 0x8118691b + SIOCDELRT = 0x8040720b + SIOCDLIFADDR = 0x8118691d + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCSLIFPHYADDR = 0x8118694a +) diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go new file mode 100644 index 0000000..856dca3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go @@ -0,0 +1,226 @@ +// 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. + +package unix + +const ( + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BSC = 0x53 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + + // missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go + IFF_SMART = 0x20 + IFT_FAITH = 0xf2 + IFT_IPXIP = 0xf9 + IPPROTO_MAXID = 0x34 + IPV6_FAITH = 0x1d + IP_FAITH = 0x16 + MAP_NORESERVE = 0x40 + MAP_RENAME = 0x20 + NET_RT_MAXID = 0x6 + RTF_PRCLONING = 0x10000 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + SIOCADDRT = 0x8030720a + SIOCALIFADDR = 0x8118691b + SIOCDELRT = 0x8030720b + SIOCDLIFADDR = 0x8118691d + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCSLIFPHYADDR = 0x8118694a +) diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go new file mode 100644 index 0000000..946dcf3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go @@ -0,0 +1,17 @@ +// 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. + +// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep +// them here for backwards compatibility. + +package unix + +const ( + DLT_HHDLC = 0x79 + IPV6_MIN_MEMBERSHIPS = 0x1f + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 +) diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go new file mode 100644 index 0000000..4dc5348 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl.go @@ -0,0 +1,36 @@ +// 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. + +// +build dragonfly freebsd linux netbsd openbsd + +package unix + +import "unsafe" + +// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux +// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. +var fcntl64Syscall uintptr = SYS_FCNTL + +func fcntl(fd int, cmd, arg int) (int, error) { + valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) + var err error + if errno != 0 { + err = errno + } + return int(valptr), err +} + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) + if errno == 0 { + return nil + } + return errno +} diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go new file mode 100644 index 0000000..a9911c7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -0,0 +1,24 @@ +// 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 unix + +import "unsafe" + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) + return err +} + +// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. +func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) + return err +} diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go new file mode 100644 index 0000000..8db48e5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go @@ -0,0 +1,13 @@ +// 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. + +// +build linux,386 linux,arm linux,mips linux,mipsle + +package unix + +func init() { + // On 32-bit Linux systems, the fcntl syscall that matches Go's + // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. + fcntl64Syscall = SYS_FCNTL64 +} diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go new file mode 100644 index 0000000..b27be0a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -0,0 +1,29 @@ +// 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +// Set adds fd to the set fds. +func (fds *FdSet) Set(fd int) { + fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) +} + +// Clear removes fd from the set fds. +func (fds *FdSet) Clear(fd int) { + fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) +} + +// IsSet returns whether fd is in the set fds. +func (fds *FdSet) IsSet(fd int) bool { + return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 +} + +// Zero clears the set fds. +func (fds *FdSet) Zero() { + for i := range fds.Bits { + fds.Bits[i] = 0 + } +} diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go new file mode 100644 index 0000000..86032c1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -0,0 +1,60 @@ +// 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. + +// +build gccgo +// +build !aix + +package unix + +import "syscall" + +// We can't use the gc-syntax .s files for gccgo. On the plus side +// much of the functionality can be written directly in Go. + +func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) + +func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) + +func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { + syscall.Entersyscall() + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0 +} + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0 +} + +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} + +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c new file mode 100644 index 0000000..2cb1fef --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -0,0 +1,45 @@ +// 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. + +// +build gccgo +// +build !aix + +#include +#include +#include + +#define _STRINGIFY2_(x) #x +#define _STRINGIFY_(x) _STRINGIFY2_(x) +#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) + +// Call syscall from C code because the gccgo support for calling from +// Go to C does not support varargs functions. + +struct ret { + uintptr_t r; + uintptr_t err; +}; + +struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); + +struct ret +gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) +{ + struct ret r; + + errno = 0; + r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); + r.err = errno; + return r; +} + +uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); + +uintptr_t +gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) +{ + return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); +} diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go new file mode 100644 index 0000000..251a977 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go @@ -0,0 +1,20 @@ +// 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. + +// +build gccgo,linux,amd64 + +package unix + +import "syscall" + +//extern gettimeofday +func realGettimeofday(*Timeval, *byte) int32 + +func gettimeofday(tv *Timeval) (err syscall.Errno) { + r := realGettimeofday(tv, nil) + if r < 0 { + return syscall.GetErrno() + } + return 0 +} diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go new file mode 100644 index 0000000..5641678 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl.go @@ -0,0 +1,74 @@ +// Copyright 2018 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +import ( + "runtime" + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetPointerInt performs an ioctl operation which sets an +// integer value on fd, using the specified request number. The ioctl +// argument is called with a pointer to the integer value, rather than +// passing the integer value directly. +func IoctlSetPointerInt(fd int, req uint, value int) error { + v := int32(value) + return ioctl(fd, req, uintptr(unsafe.Pointer(&v))) +} + +// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. +// +// To change fd's window size, the req argument should be TIOCSWINSZ. +func IoctlSetWinsize(fd int, req uint, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value will usually be TCSETA or TIOCSETA. +func IoctlSetTermios(fd int, req uint, value *Termios) error { + // TODO: if we get the chance, remove the req parameter. + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh new file mode 100644 index 0000000..d257fac --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -0,0 +1,243 @@ +#!/usr/bin/env bash +# Copyright 2009 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 script runs or (given -n) prints suggested commands to generate files for +# the Architecture/OS specified by the GOARCH and GOOS environment variables. +# See README.md for more information about how the build system works. + +GOOSARCH="${GOOS}_${GOARCH}" + +# defaults +mksyscall="go run mksyscall.go" +mkerrors="./mkerrors.sh" +zerrors="zerrors_$GOOSARCH.go" +mksysctl="" +zsysctl="zsysctl_$GOOSARCH.go" +mksysnum= +mktypes= +mkasm= +run="sh" +cmd="" + +case "$1" in +-syscalls) + for i in zsyscall*go + do + # Run the command line that appears in the first line + # of the generated file to regenerate it. + sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i + rm _$i + done + exit 0 + ;; +-n) + run="cat" + cmd="echo" + shift +esac + +case "$#" in +0) + ;; +*) + echo 'usage: mkall.sh [-n]' 1>&2 + exit 2 +esac + +if [[ "$GOOS" = "linux" ]]; then + # Use the Docker-based build system + # Files generated through docker (use $cmd so you can Ctl-C the build or run) + $cmd docker build --tag generate:$GOOS $GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")" && /bin/pwd):/build generate:$GOOS + exit +fi + +GOOSARCH_in=syscall_$GOOSARCH.go +case "$GOOSARCH" in +_* | *_ | _) + echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 + exit 1 + ;; +aix_ppc) + mkerrors="$mkerrors -maix32" + mksyscall="go run mksyscall_aix_ppc.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +aix_ppc64) + mkerrors="$mkerrors -maix64" + mksyscall="go run mksyscall_aix_ppc64.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +darwin_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" + ;; +darwin_amd64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" + ;; +darwin_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" + ;; +darwin_arm64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" + ;; +dragonfly_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -dragonfly" + mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_amd64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -arm" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +freebsd_arm64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +netbsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +netbsd_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +netbsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -netbsd -arm" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +netbsd_arm64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -openbsd" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -openbsd -arm" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_arm64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_mips64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd" + mksysctl="go run mksysctl_openbsd.go" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +solaris_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors="$mkerrors -m64" + mksysnum= + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +illumos_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors= + mksysnum= + mktypes= + ;; +*) + echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 + exit 1 + ;; +esac + +( + if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi + case "$GOOS" in + *) + syscall_goos="syscall_$GOOS.go" + case "$GOOS" in + darwin | dragonfly | freebsd | netbsd | openbsd) + syscall_goos="syscall_bsd.go $syscall_goos" + ;; + esac + if [ -n "$mksyscall" ]; then + if [ "$GOOSARCH" == "aix_ppc64" ]; then + # aix/ppc64 script generates files instead of writing to stdin. + echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; + elif [ "$GOOS" == "darwin" ]; then + # 1.12 and later, syscalls via libSystem + echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; + # 1.13 and later, syscalls via libSystem (including syscallPtr) + echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go"; + elif [ "$GOOS" == "illumos" ]; then + # illumos code generation requires a --illumos switch + echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; + # illumos implies solaris, so solaris code generation is also required + echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; + else + echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; + fi + fi + esac + if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi + if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi + if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi +) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh new file mode 100644 index 0000000..b8313e9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -0,0 +1,726 @@ +#!/usr/bin/env bash +# Copyright 2009 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. + +# Generate Go code listing errors and other #defined constant +# values (ENAMETOOLONG etc.), by asking the preprocessor +# about the definitions. + +unset LANG +export LC_ALL=C +export LC_CTYPE=C + +if test -z "$GOARCH" -o -z "$GOOS"; then + echo 1>&2 "GOARCH or GOOS not defined in environment" + exit 1 +fi + +# Check that we are using the new build system if we should +if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then + echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." + echo 1>&2 "See README.md" + exit 1 +fi + +if [[ "$GOOS" = "aix" ]]; then + CC=${CC:-gcc} +else + CC=${CC:-cc} +fi + +if [[ "$GOOS" = "solaris" ]]; then + # Assumes GNU versions of utilities in PATH. + export PATH=/usr/gnu/bin:$PATH +fi + +uname=$(uname) + +includes_AIX=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define AF_LOCAL AF_UNIX +' + +includes_Darwin=' +#define _DARWIN_C_SOURCE +#define KERNEL +#define _DARWIN_USE_64_BIT_INODE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + +includes_DragonFly=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + +includes_FreeBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if __FreeBSD__ >= 10 +#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 +#undef SIOCAIFADDR +#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data +#undef SIOCSIFPHYADDR +#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data +#endif +' + +includes_Linux=' +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#ifndef __LP64__ +#define _FILE_OFFSET_BITS 64 +#endif +#define _GNU_SOURCE + +// is broken on powerpc64, as it fails to include definitions of +// these structures. We just include them copied from . +#if defined(__powerpc__) +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#if defined(__sparc__) +// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the +// definition in glibc. As only the error constants are needed here, include the +// generic termibits.h (which is included by termbits.h on sparc). +#include +#else +#include +#endif + +#ifndef MSG_FASTOPEN +#define MSG_FASTOPEN 0x20000000 +#endif + +#ifndef PTRACE_GETREGS +#define PTRACE_GETREGS 0xc +#endif + +#ifndef PTRACE_SETREGS +#define PTRACE_SETREGS 0xd +#endif + +#ifndef SOL_NETLINK +#define SOL_NETLINK 270 +#endif + +#ifdef SOL_BLUETOOTH +// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h +// but it is already in bluetooth_linux.go +#undef SOL_BLUETOOTH +#endif + +// Certain constants are missing from the fs/crypto UAPI +#define FS_KEY_DESC_PREFIX "fscrypt:" +#define FS_KEY_DESC_PREFIX_SIZE 8 +#define FS_MAX_KEY_SIZE 64 + +// The code generator produces -0x1 for (~0), but an unsigned value is necessary +// for the tipc_subscr timeout __u32 field. +#undef TIPC_WAIT_FOREVER +#define TIPC_WAIT_FOREVER 0xffffffff + +// Copied from linux/l2tp.h +// Including linux/l2tp.h here causes conflicts between linux/in.h +// and netinet/in.h included via net/route.h above. +#define IPPROTO_L2TP 115 +' + +includes_NetBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Needed since refers to it... +#define schedppq 1 +' + +includes_OpenBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// We keep some constants not supported in OpenBSD 5.5 and beyond for +// the promise of compatibility. +#define EMUL_ENABLED 0x1 +#define EMUL_NATIVE 0x2 +#define IPV6_FAITH 0x1d +#define IPV6_OPTIONS 0x1 +#define IPV6_RTHDR_STRICT 0x1 +#define IPV6_SOCKOPT_RESERVED1 0x3 +#define SIOCGIFGENERIC 0xc020693a +#define SIOCSIFGENERIC 0x80206939 +#define WALTSIG 0x4 +' + +includes_SunOS=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + + +includes=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' +ccflags="$@" + +# Write go tool cgo -godefs input. +( + echo package unix + echo + echo '/*' + indirect="includes_$(uname)" + echo "${!indirect} $includes" + echo '*/' + echo 'import "C"' + echo 'import "syscall"' + echo + echo 'const (' + + # The gcc command line prints all the #defines + # it encounters while processing the input + echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | + awk ' + $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} + + $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers + $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} + $2 ~ /^(SCM_SRCRT)$/ {next} + $2 ~ /^(MAP_FAILED)$/ {next} + $2 ~ /^ELF_.*$/ {next}# contains ELF_ARCH, etc. + + $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || + $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} + + $2 !~ /^ECCAPBITS/ && + $2 !~ /^ETH_/ && + $2 !~ /^EPROC_/ && + $2 !~ /^EQUIV_/ && + $2 !~ /^EXPR_/ && + $2 ~ /^E[A-Z0-9_]+$/ || + $2 ~ /^B[0-9_]+$/ || + $2 ~ /^(OLD|NEW)DEV$/ || + $2 == "BOTHER" || + $2 ~ /^CI?BAUD(EX)?$/ || + $2 == "IBSHIFT" || + $2 ~ /^V[A-Z0-9]+$/ || + $2 ~ /^CS[A-Z0-9]/ || + $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || + $2 ~ /^IGN/ || + $2 ~ /^IX(ON|ANY|OFF)$/ || + $2 ~ /^IN(LCR|PCK)$/ || + $2 !~ "X86_CR3_PCID_NOFLUSH" && + $2 ~ /(^FLU?SH)|(FLU?SH$)/ || + $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || + $2 == "BRKINT" || + $2 == "HUPCL" || + $2 == "PENDIN" || + $2 == "TOSTOP" || + $2 == "XCASE" || + $2 == "ALTWERASE" || + $2 == "NOKERNINFO" || + $2 == "NFDBITS" || + $2 ~ /^PAR/ || + $2 ~ /^SIG[^_]/ || + $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || + $2 ~ /^O?XTABS$/ || + $2 ~ /^TC[IO](ON|OFF)$/ || + $2 ~ /^IN_/ || + $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || + $2 ~ /^LO_(KEY|NAME)_SIZE$/ || + $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 ~ /^TP_STATUS_/ || + $2 ~ /^FALLOC_/ || + $2 == "ICMPV6_FILTER" || + $2 == "SOMAXCONN" || + $2 == "NAME_MAX" || + $2 == "IFNAMSIZ" || + $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || + $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || + $2 ~ /^HW_MACHINE$/ || + $2 ~ /^SYSCTL_VERS/ || + $2 !~ "MNT_BITS" && + $2 ~ /^(MS|MNT|UMOUNT)_/ || + $2 ~ /^NS_GET_/ || + $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ || + $2 ~ /^KEXEC_/ || + $2 ~ /^LINUX_REBOOT_CMD_/ || + $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || + $2 ~ /^MODULE_INIT_/ || + $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 ~ /^FIORDCHK$/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || + $2 ~ /^TCGET/ || + $2 ~ /^TCSET/ || + $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || + $2 !~ "RTF_BITS" && + $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^BIOC/ || + $2 ~ /^DIOC/ || + $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || + $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || + $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || + $2 ~ /^CLONE_[A-Z_]+/ || + $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && + $2 ~ /^(BPF|DLT)_/ || + $2 ~ /^(CLOCK|TIMER)_/ || + $2 ~ /^CAN_/ || + $2 ~ /^CAP_/ || + $2 ~ /^CP_/ || + $2 ~ /^CPUSTATES$/ || + $2 ~ /^CTLIOCGINFO$/ || + $2 ~ /^ALG_/ || + $2 ~ /^FI(CLONE|DEDUPERANGE)/ || + $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || + $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || + $2 ~ /^FS_VERITY_/ || + $2 ~ /^FSCRYPT_/ || + $2 ~ /^DM_/ || + $2 ~ /^GRND_/ || + $2 ~ /^RND/ || + $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || + $2 ~ /^KEYCTL_/ || + $2 ~ /^PERF_/ || + $2 ~ /^SECCOMP_MODE_/ || + $2 ~ /^SPLICE_/ || + $2 ~ /^SYNC_FILE_RANGE_/ || + $2 !~ /^AUDIT_RECORD_MAGIC/ && + $2 !~ /IOC_MAGIC/ && + $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || + $2 ~ /^(VM|VMADDR)_/ || + $2 ~ /^IOCTL_VM_SOCKETS_/ || + $2 ~ /^(TASKSTATS|TS)_/ || + $2 ~ /^CGROUPSTATS_/ || + $2 ~ /^GENL_/ || + $2 ~ /^STATX_/ || + $2 ~ /^RENAME/ || + $2 ~ /^UBI_IOC[A-Z]/ || + $2 ~ /^UTIME_/ || + $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || + $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || + $2 ~ /^FSOPT_/ || + $2 ~ /^WDIO[CFS]_/ || + $2 ~ /^NFN/ || + $2 ~ /^XDP_/ || + $2 ~ /^RWF_/ || + $2 ~ /^(HDIO|WIN|SMART)_/ || + $2 ~ /^CRYPTO_/ || + $2 ~ /^TIPC_/ || + $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && + $2 ~ /^DEVLINK_/ || + $2 ~ /^ETHTOOL_/ || + $2 ~ /^LWTUNNEL_IP/ || + $2 !~ "WMESGLEN" && + $2 ~ /^W[A-Z0-9]+$/ || + $2 ~/^PPPIOC/ || + $2 ~ /^FAN_|FANOTIFY_/ || + $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} + $2 ~ /^__WCOREFLAG$/ {next} + $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} + + {next} + ' | sort + + echo ')' +) >_const.go + +# Pull out the error names for later. +errors=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | + sort +) + +# Pull out the signal names for later. +signals=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort +) + +# Again, writing regexps to a file. +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | + sort >_error.grep +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort >_signal.grep + +echo '// mkerrors.sh' "$@" +echo '// Code generated by the command above; see README.md. DO NOT EDIT.' +echo +echo "// +build ${GOARCH},${GOOS}" +echo +go tool cgo -godefs -- "$@" _const.go >_error.out +cat _error.out | grep -vf _error.grep | grep -vf _signal.grep +echo +echo '// Errors' +echo 'const (' +cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' +echo ')' + +echo +echo '// Signals' +echo 'const (' +cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' +echo ')' + +# Run C program to print error and syscall strings. +( + echo -E " +#include +#include +#include +#include +#include +#include + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) + +enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below + +struct tuple { + int num; + const char *name; +}; + +struct tuple errors[] = { +" + for i in $errors + do + echo -E ' {'$i', "'$i'" },' + done + + echo -E " +}; + +struct tuple signals[] = { +" + for i in $signals + do + echo -E ' {'$i', "'$i'" },' + done + + # Use -E because on some systems bash builtin interprets \n itself. + echo -E ' +}; + +static int +tuplecmp(const void *a, const void *b) +{ + return ((struct tuple *)a)->num - ((struct tuple *)b)->num; +} + +int +main(void) +{ + int i, e; + char buf[1024], *p; + + printf("\n\n// Error table\n"); + printf("var errorList = [...]struct {\n"); + printf("\tnum syscall.Errno\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); + for(i=0; i 0 && errors[i-1].num == e) + continue; + strcpy(buf, strerror(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); + } + printf("}\n\n"); + + printf("\n\n// Signal table\n"); + printf("var signalList = [...]struct {\n"); + printf("\tnum syscall.Signal\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); + for(i=0; i 0 && signals[i-1].num == e) + continue; + strcpy(buf, strsignal(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + // cut trailing : number. + p = strrchr(buf, ":"[0]); + if(p) + *p = '\0'; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); + } + printf("}\n\n"); + + return 0; +} + +' +) >_errors.c + +$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go new file mode 100644 index 0000000..bc2f362 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go @@ -0,0 +1,15 @@ +// 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +// For Unix, get the pagesize from the runtime. + +package unix + +import "syscall" + +func Getpagesize() int { + return syscall.Getpagesize() +} diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go new file mode 100644 index 0000000..eb48294 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/pledge_openbsd.go @@ -0,0 +1,163 @@ +// 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. + +package unix + +import ( + "errors" + "fmt" + "strconv" + "syscall" + "unsafe" +) + +// Pledge implements the pledge syscall. +// +// The pledge syscall does not accept execpromises on OpenBSD releases +// before 6.3. +// +// execpromises must be empty when Pledge is called on OpenBSD +// releases predating 6.3, otherwise an error will be returned. +// +// For more information see pledge(2). +func Pledge(promises, execpromises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, execpromises) + if err != nil { + return err + } + + pptr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + + // This variable will hold either a nil unsafe.Pointer or + // an unsafe.Pointer to a string (execpromises). + var expr unsafe.Pointer + + // If we're running on OpenBSD > 6.2, pass execpromises to the syscall. + if maj > 6 || (maj == 6 && min > 2) { + exptr, err := syscall.BytePtrFromString(execpromises) + if err != nil { + return err + } + expr = unsafe.Pointer(exptr) + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) + if e != 0 { + return e + } + + return nil +} + +// PledgePromises implements the pledge syscall. +// +// This changes the promises and leaves the execpromises untouched. +// +// For more information see pledge(2). +func PledgePromises(promises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, "") + if err != nil { + return err + } + + // This variable holds the execpromises and is always nil. + var expr unsafe.Pointer + + pptr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) + if e != 0 { + return e + } + + return nil +} + +// PledgeExecpromises implements the pledge syscall. +// +// This changes the execpromises and leaves the promises untouched. +// +// For more information see pledge(2). +func PledgeExecpromises(execpromises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, execpromises) + if err != nil { + return err + } + + // This variable holds the promises and is always nil. + var pptr unsafe.Pointer + + exptr, err := syscall.BytePtrFromString(execpromises) + if err != nil { + return err + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0) + if e != 0 { + return e + } + + return nil +} + +// majmin returns major and minor version number for an OpenBSD system. +func majmin() (major int, minor int, err error) { + var v Utsname + err = Uname(&v) + if err != nil { + return + } + + major, err = strconv.Atoi(string(v.Release[0])) + if err != nil { + err = errors.New("cannot parse major version number returned by uname") + return + } + + minor, err = strconv.Atoi(string(v.Release[2])) + if err != nil { + err = errors.New("cannot parse minor version number returned by uname") + return + } + + return +} + +// pledgeAvailable checks for availability of the pledge(2) syscall +// based on the running OpenBSD version. +func pledgeAvailable(maj, min int, execpromises string) error { + // If OpenBSD <= 5.9, pledge is not available. + if (maj == 5 && min != 9) || maj < 5 { + return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min) + } + + // If OpenBSD <= 6.2 and execpromises is not empty, + // return an error - execpromises is not available before 6.3 + if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" { + return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min) + } + + return nil +} diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go new file mode 100644 index 0000000..fc568b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_darwin.go @@ -0,0 +1,11 @@ +// 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. + +// +build darwin,!ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) error { + return ptrace1(request, pid, addr, data) +} diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go new file mode 100644 index 0000000..183441c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_ios.go @@ -0,0 +1,11 @@ +// 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. + +// +build ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + return ENOTSUP +} diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go new file mode 100644 index 0000000..61712b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/race.go @@ -0,0 +1,30 @@ +// 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. + +// +build darwin,race linux,race freebsd,race + +package unix + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go new file mode 100644 index 0000000..ad02667 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/race0.go @@ -0,0 +1,25 @@ +// 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. + +// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly + +package unix + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go new file mode 100644 index 0000000..3a90aa6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go @@ -0,0 +1,12 @@ +// 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. + +// +build aix dragonfly freebsd linux netbsd openbsd + +package unix + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + return Getdents(fd, buf) +} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go new file mode 100644 index 0000000..5fdae40 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -0,0 +1,19 @@ +// 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. + +// +build darwin + +package unix + +import "unsafe" + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + // Final argument is (basep *uintptr) and the syscall doesn't take nil. + // 64 bits should be enough. (32 bits isn't even on 386). Since the + // actual system call is getdirentries64, 64 is a good guess. + // TODO(rsc): Can we use a single global basep for all calls? + var base = (*uintptr)(unsafe.Pointer(new(uint64))) + return Getdirentries(fd, buf, base) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go new file mode 100644 index 0000000..5144dee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go @@ -0,0 +1,16 @@ +// 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 unix + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { + // 64-bit Dragonfly before the September 2019 ABI changes still requires + // 32-bit aligned access to network subsystem. + salign = 4 + } + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go new file mode 100644 index 0000000..8bf4570 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go @@ -0,0 +1,36 @@ +// Copyright 2011 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 +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go new file mode 100644 index 0000000..003916e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -0,0 +1,92 @@ +// Copyright 2011 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +// Socket control messages + +package unix + +import ( + "unsafe" +) + +// CmsgLen returns the value to store in the Len field of the Cmsghdr +// structure, taking into account any necessary alignment. +func CmsgLen(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + datalen +} + +// CmsgSpace returns the number of bytes an ancillary element with +// payload of the passed data length occupies. +func CmsgSpace(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) +} + +func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) +} + +// SocketControlMessage represents a socket control message. +type SocketControlMessage struct { + Header Cmsghdr + Data []byte +} + +// ParseSocketControlMessage parses b as an array of socket control +// messages. +func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { + var msgs []SocketControlMessage + i := 0 + for i+CmsgLen(0) <= len(b) { + h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) + if err != nil { + return nil, err + } + m := SocketControlMessage{Header: *h, Data: dbuf} + msgs = append(msgs, m) + i += cmsgAlignOf(int(h.Len)) + } + return msgs, nil +} + +func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { + return nil, nil, EINVAL + } + return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil +} + +// UnixRights encodes a set of open file descriptors into a socket +// control message for sending to another process. +func UnixRights(fds ...int) []byte { + datalen := len(fds) * 4 + b := make([]byte, CmsgSpace(datalen)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_RIGHTS + h.SetLen(CmsgLen(datalen)) + for i, fd := range fds { + *(*int32)(h.data(4 * uintptr(i))) = int32(fd) + } + return b +} + +// ParseUnixRights decodes a socket control message that contains an +// integer array of open file descriptors from another process. +func ParseUnixRights(m *SocketControlMessage) ([]int, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_RIGHTS { + return nil, EINVAL + } + fds := make([]int, len(m.Data)>>2) + for i, j := 0, 0; i < len(m.Data); i += 4 { + fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) + j++ + } + return fds, nil +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go new file mode 100644 index 0000000..57a0021 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go @@ -0,0 +1,42 @@ +// 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. + +// +build aix darwin freebsd linux netbsd openbsd solaris + +package unix + +import ( + "runtime" +) + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + + // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in + // sockcmsg_dragonfly.go + switch runtime.GOOS { + case "aix": + // There is no alignment on AIX. + salign = 1 + case "darwin", "ios", "illumos", "solaris": + // NOTE: It seems like 64-bit Darwin, Illumos and Solaris + // kernels still require 32-bit aligned access to network + // subsystem. + if SizeofPtr == 8 { + salign = 4 + } + case "netbsd", "openbsd": + // NetBSD and OpenBSD armv7 require 64-bit alignment. + if runtime.GOARCH == "arm" { + salign = 8 + } + // NetBSD aarch64 requires 128-bit alignment. + if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { + salign = 16 + } + } + + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go new file mode 100644 index 0000000..17fb698 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/str.go @@ -0,0 +1,26 @@ +// Copyright 2009 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +func itoa(val int) string { // do it here rather than with fmt to avoid dependency + if val < 0 { + return "-" + uitoa(uint(-val)) + } + return uitoa(uint(val)) +} + +func uitoa(val uint) string { + var buf [32]byte // big enough for int64 + i := len(buf) - 1 + for val >= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go new file mode 100644 index 0000000..ab75ef9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall.go @@ -0,0 +1,94 @@ +// Copyright 2009 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +// Package unix contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display OS-specific documentation for the current +// system. If you want godoc to display OS documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package unix // import "golang.org/x/sys/unix" + +import ( + "bytes" + "strings" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + var s []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(s) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +var _zero uintptr diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go new file mode 100644 index 0000000..4408153 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -0,0 +1,552 @@ +// Copyright 2018 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. + +// +build aix + +// Aix system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import "unsafe" + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +//sys utimes(path string, times *[2]Timeval) (err error) +func Utimes(path string, tv []Timeval) error { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) 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 (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = uint8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +//sys getcwd(buf []byte) (err error) + +const ImplementsGetwd = true + +func Getwd() (ret string, err error) { + for len := uint64(4096); ; len *= 2 { + b := make([]byte, len) + err := getcwd(b) + if err == nil { + i := 0 + for b[i] != 0 { + i++ + } + return string(b[0:i]), nil + } + if err != ERANGE { + return "", err + } + } +} + +func Getcwd(buf []byte) (n int, err error) { + err = getcwd(buf) + if err == nil { + i := 0 + for buf[i] != 0 { + i++ + } + n = i + 1 + } + return +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 16 on BSD. + if n < 0 || n > 1000 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +/* + * Socket + */ + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + // Recvmsg not implemented on AIX + sa := new(SockaddrUnix) + return -1, -1, -1, sa, ENOSYS +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + // SendmsgN not implemented on AIX + return -1, ENOSYS +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + + // Some versions of AIX have a bug in getsockname (see IV78655). + // We can't rely on sa.Len being set correctly. + n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + n = i + break + } + } + + bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Gettimeofday(tv *Timeval) (err error) { + err = gettimeofday(tv, nil) + 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) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +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 +} + +//sys getdirent(fd int, buf []byte) (n int, err error) +func Getdents(fd int, buf []byte) (n int, err error) { + return getdirent(fd, buf) +} + +//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + var r Pid_t + err = ERESTART + // AIX wait4 may return with ERESTART errno, while the processus is still + // active. + for err == ERESTART { + r, err = wait4(Pid_t(pid), &status, options, rusage) + } + wpid = int(r) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +/* + * Wait + */ + +type WaitStatus uint32 + +func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>8) & 0xFF +} + +func (w WaitStatus) Exited() bool { return w&0xFF == 0 } +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int((w >> 8) & 0xFF) +} + +func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w>>16) & 0xFF +} + +func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } + +func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX +// There is no way to create a custom fcntl and to keep //sys fcntl easily, +// Therefore, the programmer must call dup2 instead of fcntl in this case. + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +/* + * Direct access + */ + +//sys Acct(path string) (err error) +//sys Chdir(path string) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(oldfd int) (fd int, err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//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 Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +//sys Fsync(fd int) (err error) +// readdir_r +//sysnb Getpgid(pid int) (pgid int, err error) + +//sys Getpgrp() (pid int) + +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog +//sys Mkdir(dirfd int, path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(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 Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) + +//sys Setuid(uid int) (err error) +//sys Setgid(uid int) (err error) + +//sys Setpriority(which int, who int, prio int) (err error) +//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) +//sys Sync() +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sysnb Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys readlen(fd int, p *byte, np int) (n int, err error) = read +//sys writelen(fd int, p *byte, np int) (n int, err error) = write + +//sys Dup2(oldfd int, newfd int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys fstat(fd int, stat *Stat_t) (err error) +//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = pread64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys stat(path string, statptr *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) + +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) + +// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg + +//sys munmap(addr uintptr, length uintptr) (err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +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) +} + +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) + +//sys Getsystemcfg(label int) (n uint64) + +//sys umount(target string) (err error) +func Unmount(target string, flags int) (err error) { + if flags != 0 { + // AIX doesn't have any flags for umount. + return ENOSYS + } + return umount(target) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go new file mode 100644 index 0000000..b3c8e33 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go @@ -0,0 +1,54 @@ +// Copyright 2018 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. + +// +build aix +// +build ppc + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Fstat(fd int, stat *Stat_t) error { + return fstat(fd, stat) +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + return fstatat(dirfd, path, stat, flags) +} + +func Lstat(path string, stat *Stat_t) error { + return lstat(path, stat) +} + +func Stat(path string, statptr *Stat_t) error { + return stat(path, statptr) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go new file mode 100644 index 0000000..9a6e024 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go @@ -0,0 +1,85 @@ +// Copyright 2018 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. + +// +build aix +// +build ppc64 + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int64(sec), Usec: int32(usec)} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// In order to only have Timespec structure, type of Stat_t's fields +// Atim, Mtim and Ctim is changed from StTimespec to Timespec during +// ztypes generation. +// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an +// int32, so the fields' value must be modified. +func fixStatTimFields(stat *Stat_t) { + stat.Atim.Nsec >>= 32 + stat.Mtim.Nsec >>= 32 + stat.Ctim.Nsec >>= 32 +} + +func Fstat(fd int, stat *Stat_t) error { + err := fstat(fd, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + err := fstatat(dirfd, path, stat, flags) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Lstat(path string, stat *Stat_t) error { + err := lstat(path, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Stat(path string, statptr *Stat_t) error { + err := stat(path, statptr) + if err != nil { + return err + } + fixStatTimFields(statptr) + return nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go new file mode 100644 index 0000000..bc634a2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -0,0 +1,663 @@ +// Copyright 2009 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. + +// +build darwin dragonfly freebsd netbsd openbsd + +// BSD system call wrappers shared by *BSD based systems +// including OS X (Darwin) and FreeBSD. Like the other +// syscall_*.go files it is compiled as Go code but also +// used as input to mksyscall which parses the //sys +// lines and generates system call stubs. + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +const ImplementsGetwd = true + +func Getwd() (string, error) { + var buf [PathMax]byte + _, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + +/* + * Wrapped + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 16 on BSD. + if n < 0 || n > 1000 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + killed = 9 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } + +func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } + +func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys Shutdown(s int, how int) (err error) + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet4 + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + 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 +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet6 + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + 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 +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) || n == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Index == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = sa.Len + sa.raw.Family = AF_LINK + sa.raw.Index = sa.Index + sa.raw.Type = sa.Type + sa.raw.Nlen = sa.Nlen + sa.raw.Alen = sa.Alen + sa.raw.Slen = sa.Slen + for i := 0; i < len(sa.raw.Data); i++ { + sa.raw.Data[i] = sa.Data[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_LINK: + pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) + sa := new(SockaddrDatalink) + sa.Len = pp.Len + sa.Family = pp.Family + sa.Index = pp.Index + sa.Type = pp.Type + sa.Nlen = pp.Nlen + sa.Alen = pp.Alen + sa.Slen = pp.Slen + for i := 0; i < len(sa.Data); i++ { + sa.Data[i] = pp.Data[i] + } + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { + return nil, EINVAL + } + sa := new(SockaddrUnix) + + // Some BSDs include the trailing NUL in the length, whereas + // others do not. Work around this by subtracting the leading + // family and len. The path is then scanned to see if a NUL + // terminator still exists within the length. + n := int(pp.Len) - 2 // subtract leading Family, Len + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + // found early NUL; assume Len included the NUL + // or was overestimating. + n = i + break + } + } + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return anyToSockaddrGOOS(fd, rsa) +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { + // Accepted socket has no address. + // This is likely due to a bug in xnu kernels, + // where instead of ECONNABORTED error socket + // is accepted, but has no address. + Close(nfd) + return 0, nil, ECONNABORTED + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be + // reported upstream. + if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { + rsa.Addr.Family = AF_UNIX + rsa.Addr.Len = SizeofSockaddrUnix + } + return anyToSockaddr(fd, &rsa) +} + +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) + +// 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) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + return string(buf[:vallen-1]), nil +} + +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // send at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) + +func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { + var change, event unsafe.Pointer + if len(changes) > 0 { + change = unsafe.Pointer(&changes[0]) + } + if len(events) > 0 { + event = unsafe.Pointer(&events[0]) + } + return kevent(kq, change, len(changes), event, len(events), timeout) +} + +// sysctlmib translates name to mib number and appends any additional args. +func sysctlmib(name string, args ...int) ([]_C_int, error) { + // Translate name to mib number. + mib, err := nametomib(name) + if err != nil { + return nil, err + } + + for _, a := range args { + mib = append(mib, _C_int(a)) + } + + return mib, nil +} + +func Sysctl(name string) (string, error) { + return SysctlArgs(name) +} + +func SysctlArgs(name string, args ...int) (string, error) { + buf, err := SysctlRaw(name, args...) + if err != nil { + return "", err + } + n := len(buf) + + // Throw away terminating NUL. + if n > 0 && buf[n-1] == '\x00' { + n-- + } + return string(buf[0:n]), nil +} + +func SysctlUint32(name string) (uint32, error) { + return SysctlUint32Args(name) +} + +func SysctlUint32Args(name string, args ...int) (uint32, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(4) + buf := make([]byte, 4) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 4 { + return 0, EIO + } + return *(*uint32)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlUint64(name string, args ...int) (uint64, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(8) + buf := make([]byte, 8) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 8 { + return 0, EIO + } + return *(*uint64)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlRaw(name string, args ...int) ([]byte, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Read into buffer of that size. + buf := make([]byte, n) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return nil, err + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n], nil +} + +func SysctlClockinfo(name string) (*Clockinfo, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofClockinfo) + var ci Clockinfo + if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofClockinfo { + return nil, EIO + } + return &ci, nil +} + +func SysctlTimeval(name string) (*Timeval, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + var tv Timeval + n := uintptr(unsafe.Sizeof(tv)) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { + return nil, err + } + if n != unsafe.Sizeof(tv) { + return nil, EIO + } + return &tv, nil +} + +//sys utimes(path string, timeval *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) 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 { + if ts == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(ts) != 2 { + return EINVAL + } + // Darwin setattrlist can set nanosecond timestamps + err := setattrlistTimes(path, ts, 0) + if err != ENOSYS { + return err + } + err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := [2]Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + err := setattrlistTimes(path, ts, flags) + if err != ENOSYS { + return err + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +//sys futimes(fd int, timeval *[2]Timeval) (err error) + +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimes(fd, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +// TODO: wrap +// Acct(name nil-string) (err error) +// Gethostuuid(uuid *byte, timeout *Timespec) (err error) +// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +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) +} + +//sys Madvise(b []byte, behav int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go new file mode 100644 index 0000000..b31ef03 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go @@ -0,0 +1,31 @@ +// 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. + +// +build darwin,go1.12,!go1.13 + +package unix + +import ( + "unsafe" +) + +const _SYS_GETDIRENTRIES64 = 344 + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // To implement this using libSystem we'd need syscall_syscallPtr for + // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall + // back to raw syscalls for this func on Go 1.12. + var p unsafe.Pointer + if len(buf) > 0 { + p = unsafe.Pointer(&buf[0]) + } else { + p = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + return n, errnoErr(e1) + } + return n, nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go new file mode 100644 index 0000000..ee852f1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go @@ -0,0 +1,107 @@ +// 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. + +// +build darwin,go1.13 + +package unix + +import ( + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +//sys closedir(dir uintptr) (err error) +//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) + +func fdopendir(fd int) (dir uintptr, err error) { + r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0) + dir = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fdopendir_trampoline() + +//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulate Getdirentries using fdopendir/readdir_r/closedir. + // We store the number of entries to skip in the seek + // offset of fd. See issue #31368. + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // We need to duplicate the incoming file descriptor + // because the caller expects to retain control of it, but + // fdopendir expects to take control of its argument. + // Just Dup'ing the file descriptor is not enough, as the + // result shares underlying state. Use Openat to make a really + // new file descriptor referring to the same directory. + fd2, err := Openat(fd, ".", O_RDONLY, 0) + if err != nil { + return 0, err + } + d, err := fdopendir(fd2) + if err != nil { + Close(fd2) + return 0, err + } + defer closedir(d) + + var cnt int64 + for { + var entry Dirent + var entryp *Dirent + e := readdir_r(d, &entry, &entryp) + if e != 0 { + return n, errnoErr(e) + } + if entryp == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + var s []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + hdr.Data = unsafe.Pointer(&entry) + hdr.Cap = reclen + hdr.Len = reclen + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go new file mode 100644 index 0000000..16f9c22 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -0,0 +1,668 @@ +// Copyright 2009,2010 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. + +// Darwin system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + raw RawSockaddrDatalink +} + +// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. +type SockaddrCtl struct { + ID uint32 + Unit uint32 + raw RawSockaddrCtl +} + +func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sc_len = SizeofSockaddrCtl + sa.raw.Sc_family = AF_SYSTEM + sa.raw.Ss_sysaddr = AF_SYS_CONTROL + sa.raw.Sc_id = sa.ID + sa.raw.Sc_unit = sa.Unit + return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_SYSTEM: + pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) + if pp.Ss_sysaddr == AF_SYS_CONTROL { + sa := new(SockaddrCtl) + sa.ID = pp.Sc_id + sa.Unit = pp.Sc_unit + return sa, nil + } + } + return nil, EAFNOSUPPORT +} + +// Some external packages rely on SYS___SYSCTL being defined to implement their +// own sysctl wrappers. Provide it here, even though direct syscalls are no +// longer supported on darwin. +const SYS___SYSCTL = SYS_SYSCTL + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +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) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } +func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } + +type attrList struct { + bitmapCount uint16 + _ uint16 + CommonAttr uint32 + VolAttr uint32 + DirAttr uint32 + FileAttr uint32 + Forkattr uint32 +} + +//sysnb pipe(p *[2]int32) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var x [2]int32 + err = pipe(&x) + p[0] = int(x[0]) + p[1] = int(x[1]) + return +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + return getfsstat(_p0, bufsize, flags) +} + +func xattrPointer(dest []byte) *byte { + // It's only when dest is set to NULL that the OS X implementations of + // getxattr() and listxattr() return the current sizes of the named attributes. + // An empty byte array is not sufficient. To maintain the same behaviour as the + // linux implementation, we wrap around the system calls and pass in NULL when + // dest is empty. + var destp *byte + if len(dest) > 0 { + destp = &dest[0] + } + return destp +} + +//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) +} + +//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) +} + +//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + // The parameters for the OS X implementation vary slightly compared to the + // linux system call, specifically the position parameter: + // + // linux: + // int setxattr( + // const char *path, + // const char *name, + // const void *value, + // size_t size, + // int flags + // ); + // + // darwin: + // int setxattr( + // const char *path, + // const char *name, + // void *value, + // size_t size, + // u_int32_t position, + // int options + // ); + // + // position specifies the offset within the extended attribute. In the + // current implementation, only the resource fork extended attribute makes + // use of this argument. For all others, position is reserved. We simply + // default to setting it to zero. + return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) +} + +//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) +} + +//sys removexattr(path string, attr string, options int) (err error) + +func Removexattr(path string, attr string) (err error) { + // We wrap around and explicitly zero out the options provided to the OS X + // implementation of removexattr, we do so for interoperability with the + // linux variant. + return removexattr(path, attr, 0) +} + +func Lremovexattr(link string, attr string) (err error) { + return removexattr(link, attr, XATTR_NOFOLLOW) +} + +//sys fremovexattr(fd int, attr string, options int) (err error) + +func Fremovexattr(fd int, attr string) (err error) { + return fremovexattr(fd, attr, 0) +} + +//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) + +func Listxattr(path string, dest []byte) (sz int, err error) { + return listxattr(path, xattrPointer(dest), len(dest), 0) +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) +} + +//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + return flistxattr(fd, xattrPointer(dest), len(dest), 0) +} + +func setattrlistTimes(path string, times []Timespec, flags int) error { + _p0, err := BytePtrFromString(path) + if err != nil { + return err + } + + var attrList attrList + attrList.bitmapCount = ATTR_BIT_MAP_COUNT + attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME + + // order is mtime, atime: the opposite of Chtimes + attributes := [2]Timespec{times[1], times[0]} + options := 0 + if flags&AT_SYMLINK_NOFOLLOW != 0 { + options |= FSOPT_NOFOLLOW + } + return setattrlist( + _p0, + unsafe.Pointer(&attrList), + unsafe.Pointer(&attributes), + unsafe.Sizeof(attributes), + options) +} + +//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { + // Darwin doesn't support SYS_UTIMENSAT + return ENOSYS +} + +/* + * Wrapped + */ + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +//sys kill(pid int, signum int, posix int) (err error) + +func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { + err := ioctl(fd, CTLIOCGINFO, uintptr(unsafe.Pointer(ctlInfo))) + runtime.KeepAlive(ctlInfo) + return err +} + +// IfreqMTU is struct ifreq used to get or set a network device's MTU. +type IfreqMTU struct { + Name [IFNAMSIZ]byte + MTU int32 +} + +// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU +// of the network device specified by ifname. +func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { + var ifreq IfreqMTU + copy(ifreq.Name[:], ifname) + err := ioctl(fd, SIOCGIFMTU, uintptr(unsafe.Pointer(&ifreq))) + return &ifreq, err +} + +// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU +// of the network device specified by ifreq.Name. +func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { + err := ioctl(fd, SIOCSIFMTU, uintptr(unsafe.Pointer(ifreq))) + runtime.KeepAlive(ifreq) + return err +} + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL + +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 { + 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 { + 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 { + 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 { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var length = int64(count) + err = sendfile(infd, outfd, *offset, &length, nil, 0) + written = int(length) + return +} + +//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Clonefile(src string, dst string, flags int) (err error) +//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exchangedata(path1 string, path2 string, options int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getcwd(buf []byte) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tp *Timeval) (err error) +//sysnb Getuid() (uid int) +//sysnb Issetugid() (tainted bool) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (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) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sys Setprivexec(flag int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE + +/* + * Unimplemented + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Ioctl +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Mount +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shmat +// Shmctl +// Shmdt +// Shmget +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// sendfile +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Poll_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go new file mode 100644 index 0000000..ee065fc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go @@ -0,0 +1,50 @@ +// Copyright 2009 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. + +// +build 386,darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go new file mode 100644 index 0000000..7a1f64a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -0,0 +1,50 @@ +// Copyright 2009 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. + +// +build amd64,darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go new file mode 100644 index 0000000..d30735c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go @@ -0,0 +1,51 @@ +// 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 unix + +import "syscall" + +func ptrace1(request int, pid int, addr uintptr, data uintptr) error { + return ENOTSUP +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic + +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go new file mode 100644 index 0000000..9f85fd4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -0,0 +1,50 @@ +// 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. + +// +build arm64,darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic + +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT +//sys Lstat(path string, stat *Stat_t) (err error) +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (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 new file mode 100644 index 0000000..f34c86c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go @@ -0,0 +1,33 @@ +// Copyright 2018 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. + +// +build darwin,go1.12 + +package unix + +import "unsafe" + +// Implemented in the runtime package (runtime/sys_darwin.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only +func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall6X syscall.syscall6X +//go:linkname syscall_syscall9 syscall.syscall9 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 +//go:linkname syscall_syscallPtr syscall.syscallPtr + +// Find the entry point for f. See comments in runtime/proc.go for the +// function of the same name. +//go:nosplit +func funcPC(f func()) uintptr { + return **(**uintptr)(unsafe.Pointer(&f)) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go new file mode 100644 index 0000000..a4f2944 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -0,0 +1,541 @@ +// Copyright 2009 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. + +// DragonFly BSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sync" + "unsafe" +) + +// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// First __DragonFly_version after September 2019 ABI changes +// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html +const _dragonflyABIChangeVersion = 500705 + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + namlen, ok := direntNamlen(buf) + if !ok { + return 0, false + } + return (16 + namlen + 1 + 7) &^ 7, true +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +//sysnb pipe() (r int, w int, err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + p[0], p[1], err = pipe() + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + +//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) +func Pread(fd int, p []byte, offset int64) (n int, err error) { + return extpread(fd, p, 0, offset) +} + +//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + return extpwrite(fd, p, 0, offset) +} + +func Accept4(fd, 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") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +func setattrlistTimes(path string, times []Timespec, flags int) error { + // used on Darwin for UtimesNano + return ENOSYS +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { + err := sysctl(mib, old, oldlen, nil, 0) + if err != nil { + // Utsname members on Dragonfly are only 32 bytes and + // the syscall returns ENOMEM in case the actual value + // is longer. + if err == ENOMEM { + err = nil + } + } + return err +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { + return err + } + uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { + return err + } + uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { + return err + } + uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { + return err + } + uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 + + return nil +} + +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) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getdents(fd int, buf []byte) (n int, err error) +//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(fd int, path string, mode uint32, dev int) (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) +//sys Pathconf(path string, name int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + * TODO(jsing): Update this list for DragonFly. + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Mount +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Getxattr +// Fgetxattr +// Setxattr +// Fsetxattr +// Removexattr +// Fremovexattr +// Listxattr +// Flistxattr +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shmat +// Shmctl +// Shmdt +// Shmget +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go new file mode 100644 index 0000000..a6b4830 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go @@ -0,0 +1,56 @@ +// Copyright 2009 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. + +// +build amd64,dragonfly + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go new file mode 100644 index 0000000..acc00c2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -0,0 +1,863 @@ +// Copyright 2009,2010 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. + +// FreeBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sync" + "unsafe" +) + +const ( + SYS_FSTAT_FREEBSD12 = 551 // { int fstat(int fd, _Out_ struct stat *sb); } + SYS_FSTATAT_FREEBSD12 = 552 // { int fstatat(int fd, _In_z_ char *path, \ + SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \ + SYS_STATFS_FREEBSD12 = 555 // { int statfs(_In_z_ char *path, \ + SYS_FSTATFS_FREEBSD12 = 556 // { int fstatfs(int fd, \ + SYS_GETFSSTAT_FREEBSD12 = 557 // { int getfsstat( \ + SYS_MKNODAT_FREEBSD12 = 559 // { int mknodat(int fd, _In_z_ char *path, \ +) + +// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h +const _ino64First = 1200031 + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +func Accept4(fd, 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") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var ( + _p0 unsafe.Pointer + bufsize uintptr + oldBuf []statfs_freebsd11_t + needsConvert bool + ) + + if len(buf) > 0 { + if supportsABI(_ino64First) { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } else { + n := len(buf) + oldBuf = make([]statfs_freebsd11_t, n) + _p0 = unsafe.Pointer(&oldBuf[0]) + bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n) + needsConvert = true + } + } + var sysno uintptr = SYS_GETFSSTAT + if supportsABI(_ino64First) { + sysno = SYS_GETFSSTAT_FREEBSD12 + } + r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + if e1 == 0 && needsConvert { + for i := range oldBuf { + buf[i].convertFrom(&oldBuf[i]) + } + } + return +} + +func setattrlistTimes(path string, times []Timespec, flags int) error { + // used on Darwin for UtimesNano + return ENOSYS +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +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 { + 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 { + 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 { + 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 { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Stat(path string, st *Stat_t) (err error) { + var oldStat stat_freebsd11_t + if supportsABI(_ino64First) { + return fstatat_freebsd12(AT_FDCWD, path, st, 0) + } + err = stat(path, &oldStat) + if err != nil { + return err + } + + st.convertFrom(&oldStat) + return nil +} + +func Lstat(path string, st *Stat_t) (err error) { + var oldStat stat_freebsd11_t + if supportsABI(_ino64First) { + return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) + } + err = lstat(path, &oldStat) + if err != nil { + return err + } + + st.convertFrom(&oldStat) + return nil +} + +func Fstat(fd int, st *Stat_t) (err error) { + var oldStat stat_freebsd11_t + if supportsABI(_ino64First) { + return fstat_freebsd12(fd, st) + } + err = fstat(fd, &oldStat) + if err != nil { + return err + } + + st.convertFrom(&oldStat) + return nil +} + +func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) { + var oldStat stat_freebsd11_t + if supportsABI(_ino64First) { + return fstatat_freebsd12(fd, path, st, flags) + } + err = fstatat(fd, path, &oldStat, flags) + if err != nil { + return err + } + + st.convertFrom(&oldStat) + return nil +} + +func Statfs(path string, st *Statfs_t) (err error) { + var oldStatfs statfs_freebsd11_t + if supportsABI(_ino64First) { + return statfs_freebsd12(path, st) + } + err = statfs(path, &oldStatfs) + if err != nil { + return err + } + + st.convertFrom(&oldStatfs) + return nil +} + +func Fstatfs(fd int, st *Statfs_t) (err error) { + var oldStatfs statfs_freebsd11_t + if supportsABI(_ino64First) { + return fstatfs_freebsd12(fd, st) + } + err = fstatfs(fd, &oldStatfs) + if err != nil { + return err + } + + st.convertFrom(&oldStatfs) + return nil +} + +func Getdents(fd int, buf []byte) (n int, err error) { + return Getdirentries(fd, buf, nil) +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + if supportsABI(_ino64First) { + if basep == nil || unsafe.Sizeof(*basep) == 8 { + return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) + } + // The freebsd12 syscall needs a 64-bit base. On 32-bit machines + // we can't just use the basep passed in. See #32498. + var base uint64 = uint64(*basep) + n, err = getdirentries_freebsd12(fd, buf, &base) + *basep = uintptr(base) + if base>>32 != 0 { + // We can't stuff the base back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return + } + + // The old syscall entries are smaller than the new. Use 1/4 of the original + // buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c). + oldBufLen := roundup(len(buf)/4, _dirblksiz) + oldBuf := make([]byte, oldBufLen) + n, err = getdirentries(fd, oldBuf, basep) + if err == nil && n > 0 { + n = convertFromDirents11(buf, oldBuf[:n]) + } + return +} + +func Mknod(path string, mode uint32, dev uint64) (err error) { + var oldDev int + if supportsABI(_ino64First) { + return mknodat_freebsd12(AT_FDCWD, path, mode, dev) + } + oldDev = int(dev) + return mknod(path, mode, oldDev) +} + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var oldDev int + if supportsABI(_ino64First) { + return mknodat_freebsd12(fd, path, mode, dev) + } + oldDev = int(dev) + return mknodat(fd, path, mode, oldDev) +} + +// round x to the nearest multiple of y, larger or equal to x. +// +// from /usr/include/sys/param.h Macros for counting and rounding. +// #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) +func roundup(x, y int) int { + return ((x + y - 1) / y) * y +} + +func (s *Stat_t) convertFrom(old *stat_freebsd11_t) { + *s = Stat_t{ + Dev: uint64(old.Dev), + Ino: uint64(old.Ino), + Nlink: uint64(old.Nlink), + Mode: old.Mode, + Uid: old.Uid, + Gid: old.Gid, + Rdev: uint64(old.Rdev), + Atim: old.Atim, + Mtim: old.Mtim, + Ctim: old.Ctim, + Btim: old.Btim, + Size: old.Size, + Blocks: old.Blocks, + Blksize: old.Blksize, + Flags: old.Flags, + Gen: uint64(old.Gen), + } +} + +func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) { + *s = Statfs_t{ + Version: _statfsVersion, + Type: old.Type, + Flags: old.Flags, + Bsize: old.Bsize, + Iosize: old.Iosize, + Blocks: old.Blocks, + Bfree: old.Bfree, + Bavail: old.Bavail, + Files: old.Files, + Ffree: old.Ffree, + Syncwrites: old.Syncwrites, + Asyncwrites: old.Asyncwrites, + Syncreads: old.Syncreads, + Asyncreads: old.Asyncreads, + // Spare + Namemax: old.Namemax, + Owner: old.Owner, + Fsid: old.Fsid, + // Charspare + // Fstypename + // Mntfromname + // Mntonname + } + + sl := old.Fstypename[:] + n := clen(*(*[]byte)(unsafe.Pointer(&sl))) + copy(s.Fstypename[:], old.Fstypename[:n]) + + sl = old.Mntfromname[:] + n = clen(*(*[]byte)(unsafe.Pointer(&sl))) + copy(s.Mntfromname[:], old.Mntfromname[:n]) + + sl = old.Mntonname[:] + n = clen(*(*[]byte)(unsafe.Pointer(&sl))) + copy(s.Mntonname[:], old.Mntonname[:n]) +} + +func convertFromDirents11(buf []byte, old []byte) int { + const ( + fixedSize = int(unsafe.Offsetof(Dirent{}.Name)) + oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name)) + ) + + dstPos := 0 + srcPos := 0 + for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) { + var dstDirent Dirent + var srcDirent dirent_freebsd11 + + // If multiple direntries are written, sometimes when we reach the final one, + // we may have cap of old less than size of dirent_freebsd11. + copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:]) + + reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8) + if dstPos+reclen > len(buf) { + break + } + + dstDirent.Fileno = uint64(srcDirent.Fileno) + dstDirent.Off = 0 + dstDirent.Reclen = uint16(reclen) + dstDirent.Type = srcDirent.Type + dstDirent.Pad0 = 0 + dstDirent.Namlen = uint16(srcDirent.Namlen) + dstDirent.Pad1 = 0 + + copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen]) + copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:]) + padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen] + for i := range padding { + padding[i] = 0 + } + + dstPos += int(dstDirent.Reclen) + srcPos += int(srcDirent.Reclen) + } + + return dstPos +} + +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) +} + +//sys ptrace(request int, pid int, addr uintptr, data int) (err error) + +func PtraceAttach(pid int) (err error) { + return ptrace(PTRACE_ATTACH, pid, 0, 0) +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 1, signal) +} + +func PtraceDetach(pid int) (err error) { + return ptrace(PTRACE_DETACH, pid, 1, 0) +} + +func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { + return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) +} + +func PtraceGetRegs(pid int, regsout *Reg) (err error) { + return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) +} + +func PtraceLwpEvents(pid int, enable int) (err error) { + return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) +} + +func PtraceLwpInfo(pid int, info uintptr) (err error) { + return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{}))) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) +} + +func PtraceSetRegs(pid int, regs *Reg) (err error) { + return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0) +} + +func PtraceSingleStep(pid int) (err error) { + return ptrace(PTRACE_SINGLESTEP, pid, 1, 0) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys CapEnter() (err error) +//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET +//sys capRightsLimit(fd int, rightsp *CapRights) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exit(code int) +//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys fstat(fd int, stat *stat_freebsd11_t) (err error) +//sys fstat_freebsd12(fd int, stat *Stat_t) (err error) +//sys fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) +//sys fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) +//sys fstatfs(fd int, stat *statfs_freebsd11_t) (err error) +//sys fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) +//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys lstat(path string, stat *stat_freebsd11_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys mknod(path string, mode uint32, dev int) (err error) +//sys mknodat(fd int, path string, mode uint32, dev int) (err error) +//sys mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys stat(path string, stat *stat_freebsd11_t) (err error) +//sys statfs(path string, stat *statfs_freebsd11_t) (err error) +//sys statfs_freebsd12(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Ioctl +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Mount +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdents +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shmat +// Shmctl +// Shmdt +// Shmget +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Poll_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go new file mode 100644 index 0000000..72a506d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -0,0 +1,66 @@ +// Copyright 2009 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. + +// +build 386,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go new file mode 100644 index 0000000..d5e376a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -0,0 +1,66 @@ +// Copyright 2009 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. + +// +build amd64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go new file mode 100644 index 0000000..4ea45bc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -0,0 +1,62 @@ +// 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. + +// +build arm,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go new file mode 100644 index 0000000..aa5326d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -0,0 +1,62 @@ +// Copyright 2018 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. + +// +build arm64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go new file mode 100644 index 0000000..7a2d412 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -0,0 +1,77 @@ +// Copyright 2009 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. + +// illumos system calls not present on Solaris. + +// +build amd64,illumos + +package unix + +import "unsafe" + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + // somehow Iovec.Base on illumos is (*int8), not (*byte) + iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0])) + } else { + iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +//sys readv(fd int, iovs []Iovec) (n int, err error) + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + return n, err +} + +//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) + +func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = preadv(fd, iovecs, off) + return n, err +} + +//sys writev(fd int, iovs []Iovec) (n int, err error) + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = writev(fd, iovecs) + return n, err +} + +//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) + +func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = pwritev(fd, iovecs, off) + return n, err +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 + +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") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go new file mode 100644 index 0000000..28be130 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -0,0 +1,2401 @@ +// Copyright 2009 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. + +// Linux system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import ( + "encoding/binary" + "runtime" + "syscall" + "unsafe" +) + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) +//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) + +func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { + if pathname == "" { + return fanotifyMark(fd, flags, mask, dirFd, nil) + } + p, err := BytePtrFromString(pathname) + if err != nil { + return err + } + return fanotifyMark(fd, flags, mask, dirFd, p) +} + +//sys fchmodat(dirfd int, path string, mode uint32) (err error) + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior + // and check the flags. Otherwise the mode would be applied to the symlink + // destination which is not what the user expects. + if flags&^AT_SYMLINK_NOFOLLOW != 0 { + return EINVAL + } else if flags&AT_SYMLINK_NOFOLLOW != 0 { + return EOPNOTSUPP + } + return fchmodat(dirfd, path, mode) +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlRetInt performs an ioctl operation specified by req on a device +// associated with opened file descriptor fd, and returns a non-negative +// integer that is returned by the ioctl syscall. +func IoctlRetInt(fd int, req uint) (int, error) { + ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + +func IoctlSetRTCTime(fd int, value *RTCTime) error { + err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetRTCTime(fd int) (*RTCTime, error) { + var value RTCTime + err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// 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. +func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { + var value WatchdogInfo + err := ioctl(fd, WDIOC_GETSUPPORT, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the +// range of data conveyed in value to the file associated with the file +// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. +func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { + err := ioctl(destFd, FICLONERANGE, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file +// associated with the file description srcFd to the file associated with the +// file descriptor destFd. See the ioctl_ficlone(2) man page for details. +func IoctlFileClone(destFd, srcFd int) error { + return ioctl(destFd, FICLONE, uintptr(srcFd)) +} + +// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the +// range of data conveyed in value with the file associated with the file +// descriptor destFd. See the ioctl_fideduperange(2) man page for details. +func IoctlFileDedupeRange(destFd int, value *FileDedupeRange) error { + err := ioctl(destFd, FIDEDUPERANGE, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For +// more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlWatchdogKeepalive(fd int) error { + return ioctl(fd, WDIOC_KEEPALIVE, 0) +} + +//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) + +func Link(oldpath string, newpath string) (err error) { + return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) +} + +func Mkdir(path string, mode uint32) (err error) { + return Mkdirat(AT_FDCWD, path, mode) +} + +func Mknod(path string, mode uint32, dev int) (err error) { + return Mknodat(AT_FDCWD, path, mode, dev) +} + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) +} + +//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + return openat(dirfd, path, flags|O_LARGEFILE, mode) +} + +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + return openat2(dirfd, path, how, SizeofOpenHow) +} + +//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) + +func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) + +func Readlink(path string, buf []byte) (n int, err error) { + return Readlinkat(AT_FDCWD, path, buf) +} + +func Rename(oldpath string, newpath string) (err error) { + return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) +} + +func Rmdir(path string) error { + return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) +} + +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) + +func Symlink(oldpath string, newpath string) (err error) { + return Symlinkat(oldpath, AT_FDCWD, newpath) +} + +func Unlink(path string) error { + return Unlinkat(AT_FDCWD, path, 0) +} + +//sys Unlinkat(dirfd int, path string, flags int) (err error) + +func Utimes(path string, tv []Timeval) error { + if tv == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + var ts [2]Timespec + ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) + ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + if ts == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(ts) != 2 { + return EINVAL + } + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + // If the utimensat syscall isn't available (utimensat was added to Linux + // in 2.6.22, Released, 8 July 2007) then fall back to utimes + var tv [2]Timeval + for i := 0; i < 2; i++ { + tv[i] = NsecToTimeval(TimespecToNsec(ts[i])) + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) 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 Futimesat(dirfd int, path string, tv []Timeval) error { + if tv == nil { + return futimesat(dirfd, path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Futimes(fd int, tv []Timeval) (err error) { + // Believe it or not, this is the best we can do on Linux + // (and is what glibc does). + return Utimes("/proc/self/fd/"+itoa(fd), tv) +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + n, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + // Getcwd returns the number of bytes written to buf, including the NUL. + if n < 1 || n > len(buf) || buf[n-1] != 0 { + return "", EINVAL + } + return string(buf[0 : n-1]), nil +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 1<<16 on Linux. + if n < 0 || n > 1<<20 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +type WaitStatus uint32 + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. At least that's the idea. +// There are various irregularities. For example, the +// "continued" status is 0xFFFF, distinguishing itself +// from stopped via the core dump bit. + +const ( + mask = 0x7F + core = 0x80 + exited = 0x00 + stopped = 0x7F + shift = 8 +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } + +func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } + +func (w WaitStatus) Continued() bool { return w == 0xFFFF } + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int(w>>shift) & 0xFF +} + +func (w WaitStatus) Signal() syscall.Signal { + if !w.Signaled() { + return -1 + } + return syscall.Signal(w & mask) +} + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { + if w.StopSignal() != SIGTRAP { + return -1 + } + return int(w>>shift) >> 8 +} + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +func Mkfifo(path string, mode uint32) error { + return Mknod(path, mode|S_IFIFO, 0) +} + +func Mkfifoat(dirfd int, path string, mode uint32) error { + return Mknodat(dirfd, path, mode|S_IFIFO, 0) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. +type SockaddrLinklayer struct { + Protocol uint16 + Ifindex int + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]byte + raw RawSockaddrLinklayer +} + +func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_PACKET + sa.raw.Protocol = sa.Protocol + sa.raw.Ifindex = int32(sa.Ifindex) + sa.raw.Hatype = sa.Hatype + sa.raw.Pkttype = sa.Pkttype + sa.raw.Halen = sa.Halen + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil +} + +// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. +type SockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 + raw RawSockaddrNetlink +} + +func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_NETLINK + sa.raw.Pad = sa.Pad + sa.raw.Pid = sa.Pid + sa.raw.Groups = sa.Groups + return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil +} + +// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the HCI protocol. +type SockaddrHCI struct { + Dev uint16 + Channel uint16 + raw RawSockaddrHCI +} + +func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Dev = sa.Dev + sa.raw.Channel = sa.Channel + return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil +} + +// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the L2CAP protocol. +type SockaddrL2 struct { + PSM uint16 + CID uint16 + Addr [6]uint8 + AddrType uint8 + raw RawSockaddrL2 +} + +func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) + psm[0] = byte(sa.PSM) + psm[1] = byte(sa.PSM >> 8) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] + } + cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) + cid[0] = byte(sa.CID) + cid[1] = byte(sa.CID >> 8) + sa.raw.Bdaddr_type = sa.AddrType + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil +} + +// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the RFCOMM protocol. +// +// Server example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 +// }) +// _ = Listen(fd, 1) +// nfd, sa, _ := Accept(fd) +// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) +// Read(nfd, buf) +// +// Client example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = Connect(fd, &SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 +// }) +// Write(fd, []byte(`hello`)) +type SockaddrRFCOMM struct { + // Addr represents a bluetooth address, byte ordering is little-endian. + Addr [6]uint8 + + // Channel is a designated bluetooth channel, only 1-30 are available for use. + // Since Linux 2.6.7 and further zero value is the first available channel. + Channel uint8 + + raw RawSockaddrRFCOMM +} + +func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Channel = sa.Channel + sa.raw.Bdaddr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil +} + +// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. +// The RxID and TxID fields are used for transport protocol addressing in +// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with +// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. +// +// The SockaddrCAN struct must be bound to the socket file descriptor +// using Bind before the CAN socket can be used. +// +// // Read one raw CAN frame +// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) +// addr := &SockaddrCAN{Ifindex: index} +// Bind(fd, addr) +// frame := make([]byte, 16) +// Read(fd, frame) +// +// The full SocketCAN documentation can be found in the linux kernel +// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt +type SockaddrCAN struct { + Ifindex int + RxID uint32 + TxID uint32 + raw RawSockaddrCAN +} + +func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i] = rx[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+4] = tx[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + +// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 +// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information +// on the purposes of the fields, check the official linux kernel documentation +// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst +type SockaddrCANJ1939 struct { + Ifindex int + Name uint64 + PGN uint32 + Addr uint8 + raw RawSockaddrCAN +} + +func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + n := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + sa.raw.Addr[i] = n[i] + } + p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+8] = p[i] + } + sa.raw.Addr[12] = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + +// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. +// SockaddrALG enables userspace access to the Linux kernel's cryptography +// subsystem. The Type and Name fields specify which type of hash or cipher +// should be used with a given socket. +// +// To create a file descriptor that provides access to a hash or cipher, both +// Bind and Accept must be used. Once the setup process is complete, input +// data can be written to the socket, processed by the kernel, and then read +// back as hash output or ciphertext. +// +// Here is an example of using an AF_ALG socket with SHA1 hashing. +// The initial socket setup process is as follows: +// +// // Open a socket to perform SHA1 hashing. +// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) +// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} +// unix.Bind(fd, addr) +// // Note: unix.Accept does not work at this time; must invoke accept() +// // manually using unix.Syscall. +// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) +// +// Once a file descriptor has been returned from Accept, it may be used to +// perform SHA1 hashing. The descriptor is not safe for concurrent use, but +// may be re-used repeatedly with subsequent Write and Read operations. +// +// When hashing a small byte slice or string, a single Write and Read may +// be used: +// +// // Assume hashfd is already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash an input string and read the results. Each Write discards +// // previous hash state. Read always reads the current state. +// b := make([]byte, 20) +// for i := 0; i < 2; i++ { +// io.WriteString(hash, "Hello, world.") +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// } +// // Output: +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// +// For hashing larger byte slices, or byte streams such as those read from +// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update +// the hash digest instead of creating a new one for a given chunk and finalizing it. +// +// // Assume hashfd and addr are already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash the contents of a file. +// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") +// b := make([]byte, 4096) +// for { +// n, err := f.Read(b) +// if err == io.EOF { +// break +// } +// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) +// } +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 +// +// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. +type SockaddrALG struct { + Type string + Name string + Feature uint32 + Mask uint32 + raw RawSockaddrALG +} + +func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { + // Leave room for NUL byte terminator. + if len(sa.Type) > 13 { + return nil, 0, EINVAL + } + if len(sa.Name) > 63 { + return nil, 0, EINVAL + } + + sa.raw.Family = AF_ALG + sa.raw.Feat = sa.Feature + sa.raw.Mask = sa.Mask + + typ, err := ByteSliceFromString(sa.Type) + if err != nil { + return nil, 0, err + } + name, err := ByteSliceFromString(sa.Name) + if err != nil { + return nil, 0, err + } + + copy(sa.raw.Type[:], typ) + copy(sa.raw.Name[:], name) + + return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil +} + +// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. +// SockaddrVM provides access to Linux VM sockets: a mechanism that enables +// bidirectional communication between a hypervisor and its guest virtual +// machines. +type SockaddrVM struct { + // CID and Port specify a context ID and port address for a VM socket. + // Guests have a unique CID, and hosts may have a well-known CID of: + // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_HOST: refers to other processes on the host. + CID uint32 + Port uint32 + raw RawSockaddrVM +} + +func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_VSOCK + sa.raw.Port = sa.Port + sa.raw.Cid = sa.CID + + return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil +} + +type SockaddrXDP struct { + Flags uint16 + Ifindex uint32 + QueueID uint32 + SharedUmemFD uint32 + raw RawSockaddrXDP +} + +func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_XDP + sa.raw.Flags = sa.Flags + sa.raw.Ifindex = sa.Ifindex + sa.raw.Queue_id = sa.QueueID + sa.raw.Shared_umem_fd = sa.SharedUmemFD + + return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil +} + +// This constant mirrors the #define of PX_PROTO_OE in +// linux/if_pppox.h. We're defining this by hand here instead of +// autogenerating through mkerrors.sh because including +// linux/if_pppox.h causes some declaration conflicts with other +// includes (linux/if_pppox.h includes linux/in.h, which conflicts +// with netinet/in.h). Given that we only need a single zero constant +// out of that file, it's cleaner to just define it by hand here. +const px_proto_oe = 0 + +type SockaddrPPPoE struct { + SID uint16 + Remote []byte + Dev string + raw RawSockaddrPPPoX +} + +func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { + if len(sa.Remote) != 6 { + return nil, 0, EINVAL + } + if len(sa.Dev) > IFNAMSIZ-1 { + return nil, 0, EINVAL + } + + *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX + // This next field is in host-endian byte order. We can't use the + // same unsafe pointer cast as above, because this value is not + // 32-bit aligned and some architectures don't allow unaligned + // access. + // + // However, the value of px_proto_oe is 0, so we can use + // encoding/binary helpers to write the bytes without worrying + // about the ordering. + binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) + // This field is deliberately big-endian, unlike the previous + // one. The kernel expects SID to be in network byte order. + binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) + copy(sa.raw[8:14], sa.Remote) + for i := 14; i < 14+IFNAMSIZ; i++ { + sa.raw[i] = 0 + } + copy(sa.raw[14:], sa.Dev) + return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil +} + +// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets. +// For more information on TIPC, see: http://tipc.sourceforge.net/. +type SockaddrTIPC struct { + // Scope is the publication scopes when binding service/service range. + // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE. + Scope int + + // Addr is the type of address used to manipulate a socket. Addr must be + // one of: + // - *TIPCSocketAddr: "id" variant in the C addr union + // - *TIPCServiceRange: "nameseq" variant in the C addr union + // - *TIPCServiceName: "name" variant in the C addr union + // + // If nil, EINVAL will be returned when the structure is used. + Addr TIPCAddr + + raw RawSockaddrTIPC +} + +// TIPCAddr is implemented by types that can be used as an address for +// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange, +// and *TIPCServiceName. +type TIPCAddr interface { + tipcAddrtype() uint8 + tipcAddr() [12]byte +} + +func (sa *TIPCSocketAddr) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR } + +func (sa *TIPCServiceRange) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE } + +func (sa *TIPCServiceName) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR } + +func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Addr == nil { + return nil, 0, EINVAL + } + + sa.raw.Family = AF_TIPC + sa.raw.Scope = int8(sa.Scope) + sa.raw.Addrtype = sa.Addr.tipcAddrtype() + sa.raw.Addr = sa.Addr.tipcAddr() + + return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil +} + +// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. +type SockaddrL2TPIP struct { + Addr [4]byte + ConnId uint32 + raw RawSockaddrL2TPIP +} + +func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET + sa.raw.Conn_id = sa.ConnId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil +} + +// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. +type SockaddrL2TPIP6 struct { + Addr [16]byte + ZoneId uint32 + ConnId uint32 + raw RawSockaddrL2TPIP6 +} + +func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET6 + sa.raw.Conn_id = sa.ConnId + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil +} + +// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. +type SockaddrIUCV struct { + UserID string + Name string + raw RawSockaddrIUCV +} + +func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_IUCV + // These are EBCDIC encoded by the kernel, but we still need to pad them + // with blanks. Initializing with blanks allows the caller to feed in either + // a padded or an unpadded string. + for i := 0; i < 8; i++ { + sa.raw.Nodeid[i] = ' ' + sa.raw.User_id[i] = ' ' + sa.raw.Name[i] = ' ' + } + if len(sa.UserID) > 8 || len(sa.Name) > 8 { + return nil, 0, EINVAL + } + for i, b := range []byte(sa.UserID[:]) { + sa.raw.User_id[i] = int8(b) + } + for i, b := range []byte(sa.Name[:]) { + sa.raw.Name[i] = int8(b) + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil +} + +var socketProtocol = func(fd int) (int, error) { + return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_NETLINK: + pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) + sa := new(SockaddrNetlink) + sa.Family = pp.Family + sa.Pad = pp.Pad + sa.Pid = pp.Pid + sa.Groups = pp.Groups + return sa, nil + + case AF_PACKET: + pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) + sa := new(SockaddrLinklayer) + sa.Protocol = pp.Protocol + sa.Ifindex = int(pp.Ifindex) + sa.Hatype = pp.Hatype + sa.Pkttype = pp.Pkttype + sa.Halen = pp.Halen + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP) + sa.ConnId = pp.Conn_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + + case AF_INET6: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP6) + sa.ConnId = pp.Conn_id + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + + case AF_VSOCK: + pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) + sa := &SockaddrVM{ + CID: pp.Cid, + Port: pp.Port, + } + return sa, nil + case AF_BLUETOOTH: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections + switch proto { + case BTPROTO_L2CAP: + pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) + sa := &SockaddrL2{ + PSM: pp.Psm, + CID: pp.Cid, + Addr: pp.Bdaddr, + AddrType: pp.Bdaddr_type, + } + return sa, nil + case BTPROTO_RFCOMM: + pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) + sa := &SockaddrRFCOMM{ + Channel: pp.Channel, + Addr: pp.Bdaddr, + } + return sa, nil + } + case AF_XDP: + pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) + sa := &SockaddrXDP{ + Flags: pp.Flags, + Ifindex: pp.Ifindex, + QueueID: pp.Queue_id, + SharedUmemFD: pp.Shared_umem_fd, + } + return sa, nil + case AF_PPPOX: + pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) + if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { + return nil, EINVAL + } + sa := &SockaddrPPPoE{ + SID: binary.BigEndian.Uint16(pp[6:8]), + Remote: pp[8:14], + } + for i := 14; i < 14+IFNAMSIZ; i++ { + if pp[i] == 0 { + sa.Dev = string(pp[14:i]) + break + } + } + return sa, nil + case AF_TIPC: + pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa)) + + sa := &SockaddrTIPC{ + Scope: int(pp.Scope), + } + + // Determine which union variant is present in pp.Addr by checking + // pp.Addrtype. + switch pp.Addrtype { + case TIPC_SERVICE_RANGE: + sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr)) + case TIPC_SERVICE_ADDR: + sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr)) + case TIPC_SOCKET_ADDR: + sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr)) + default: + return nil, EINVAL + } + + return sa, nil + case AF_IUCV: + pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) + + var user [8]byte + var name [8]byte + + for i := 0; i < 8; i++ { + user[i] = byte(pp.User_id[i]) + name[i] = byte(pp.Name[i]) + } + + sa := &SockaddrIUCV{ + UserID: string(user[:]), + Name: string(name[:]), + } + return sa, nil + + case AF_CAN: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) + + switch proto { + case CAN_J1939: + sa := &SockaddrCANJ1939{ + Ifindex: int(pp.Ifindex), + } + name := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + name[i] = pp.Addr[i] + } + pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + pgn[i] = pp.Addr[i+8] + } + addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) + addr[0] = pp.Addr[12] + return sa, nil + default: + sa := &SockaddrCAN{ + Ifindex: int(pp.Ifindex), + } + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + 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") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { + var value Ucred + vallen := _Socklen(SizeofUcred) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + var value TCPInfo + vallen := _Socklen(SizeofTCPInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, 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) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + if err == ERANGE { + buf = make([]byte, vallen) + err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + } + if err != nil { + return "", err + } + } + return string(buf[:vallen-1]), nil +} + +func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { + var value TpacketStats + vallen := _Socklen(SizeofTpacketStats) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { + var value TpacketStatsV3 + vallen := _Socklen(SizeofTpacketStatsV3) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a +// socket to filter incoming packets. See 'man 7 socket' for usage information. +func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { + return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) +} + +func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { + var p unsafe.Pointer + if len(filter) > 0 { + p = unsafe.Pointer(&filter[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) +} + +func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) + +// KeyctlInt calls keyctl commands in which each argument is an int. +// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, +// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, +// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, +// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. +//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlBuffer calls keyctl commands in which the third and fourth +// arguments are a buffer and its length, respectively. +// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. +//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlString calls keyctl commands which return a string. +// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. +func KeyctlString(cmd int, id int) (string, error) { + // We must loop as the string data may change in between the syscalls. + // We could allocate a large buffer here to reduce the chance that the + // syscall needs to be called twice; however, this is unnecessary as + // the performance loss is negligible. + var buffer []byte + for { + // Try to fill the buffer with data + length, err := KeyctlBuffer(cmd, id, buffer, 0) + if err != nil { + return "", err + } + + // Check if the data was written + if length <= len(buffer) { + // Exclude the null terminator + return string(buffer[:length-1]), nil + } + + // Make a bigger buffer if needed + buffer = make([]byte, length) + } +} + +// Keyctl commands with special signatures. + +// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html +func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { + createInt := 0 + if create { + createInt = 1 + } + return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) +} + +// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the +// key handle permission mask as described in the "keyctl setperm" section of +// http://man7.org/linux/man-pages/man1/keyctl.1.html. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html +func KeyctlSetperm(id int, perm uint32) error { + _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) + return err +} + +//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL + +// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html +func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { + return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) +} + +//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlSearch implements the KEYCTL_SEARCH command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_search.3.html +func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { + return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) +} + +//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL + +// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This +// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice +// of Iovec (each of which represents a buffer) instead of a single buffer. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html +func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { + return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) +} + +//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL + +// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command +// computes a Diffie-Hellman shared secret based on the provide params. The +// secret is written to the provided buffer and the returned size is the number +// of bytes written (returning an error if there is insufficient space in the +// buffer). If a nil buffer is passed in, this function returns the minimum +// buffer length needed to store the appropriate data. Note that this differs +// from KEYCTL_READ's behavior which always returns the requested payload size. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html +func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) { + return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) +} + +// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This +// command limits the set of keys that can be linked to the keyring, regardless +// of keyring permissions. The command requires the "setattr" permission. +// +// When called with an empty keyType the command locks the keyring, preventing +// any further keys from being linked to the keyring. +// +// The "asymmetric" keyType defines restrictions requiring key payloads to be +// DER encoded X.509 certificates signed by keys in another keyring. Restrictions +// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted", +// "key_or_keyring:", and "key_or_keyring::chain". +// +// As of Linux 4.12, only the "asymmetric" keyType defines type-specific +// restrictions. +// +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html +// http://man7.org/linux/man-pages/man2/keyctl.2.html +func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error { + if keyType == "" { + return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid) + } + return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) +} + +//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL +//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var iov Iovec + if len(p) > 0 { + iov.Base = &p[0] + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + if len(p) == 0 { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return + } + // receive at least one normal byte + if sockType != SOCK_DGRAM { + iov.Base = &dummy + iov.SetLen(1) + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + var err error + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(ptr) + msg.Namelen = uint32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = &p[0] + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + if len(p) == 0 { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return 0, err + } + // send at least one normal byte + if sockType != SOCK_DGRAM { + iov.Base = &dummy + iov.SetLen(1) + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +// BindToDevice binds the socket associated with fd to device. +func BindToDevice(fd int, device string) (err error) { + return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) +} + +//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) + +func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { + // The peek requests are machine-size oriented, so we wrap it + // to retrieve arbitrary-length data. + + // The ptrace syscall differs from glibc's ptrace. + // Peeks returns the word in *data, not as the return value. + + var buf [SizeofPtr]byte + + // Leading edge. PEEKTEXT/PEEKDATA don't require aligned + // access (PEEKUSER warns that it might), but if we don't + // align our reads, we might straddle an unmapped page + // boundary and not get the bytes leading up to the page + // boundary. + n := 0 + if addr%SizeofPtr != 0 { + err = ptrace(req, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) + if err != nil { + return 0, err + } + n += copy(out, buf[addr%SizeofPtr:]) + out = out[n:] + } + + // Remainder. + for len(out) > 0 { + // We use an internal buffer to guarantee alignment. + // It's not documented if this is necessary, but we're paranoid. + err = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) + if err != nil { + return n, err + } + copied := copy(out, buf[0:]) + n += copied + out = out[copied:] + } + + return n, nil +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) +} + +func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) +} + +func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { + // As for ptracePeek, we need to align our accesses to deal + // with the possibility of straddling an invalid page. + + // Leading edge. + n := 0 + if addr%SizeofPtr != 0 { + var buf [SizeofPtr]byte + err = ptrace(peekReq, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) + if err != nil { + return 0, err + } + n += copy(buf[addr%SizeofPtr:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) + if err != nil { + return 0, err + } + data = data[n:] + } + + // Interior. + for len(data) > SizeofPtr { + word := *((*uintptr)(unsafe.Pointer(&data[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += SizeofPtr + data = data[SizeofPtr:] + } + + // Trailing edge. + if len(data) > 0 { + var buf [SizeofPtr]byte + err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) + if err != nil { + return n, err + } + copy(buf[0:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += len(data) + } + + return n, nil +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) +} + +func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) +} + +func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} + +func PtraceSetOptions(pid int, options int) (err error) { + return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) +} + +func PtraceGetEventMsg(pid int) (msg uint, err error) { + var data _C_long + err = ptrace(PTRACE_GETEVENTMSG, pid, 0, uintptr(unsafe.Pointer(&data))) + msg = uint(data) + return +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) +} + +func PtraceSyscall(pid int, signal int) (err error) { + return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) +} + +func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } + +func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } + +func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } + +func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } + +func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } + +//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) + +func Reboot(cmd int) (err error) { + return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") +} + +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 +} + +//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) + +func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + // Certain file systems get rather angry and EINVAL if you give + // them an empty string of data, rather than NULL. + if data == "" { + return mount(source, target, fstype, flags, nil) + } + datap, err := BytePtrFromString(data) + if err != nil { + return err + } + return mount(source, target, fstype, flags, datap) +} + +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) +} + +// Sendto +// Recvfrom +// Socketpair + +/* + * Direct access + */ +//sys Acct(path string) (err error) +//sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) +//sys Adjtimex(buf *Timex) (state int, err error) +//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) +//sys Chdir(path string) (err error) +//sys Chroot(path string) (err error) +//sys ClockGetres(clockid int32, res *Timespec) (err error) +//sys ClockGettime(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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys DeleteModule(name string, flags int) (err error) +//sys Dup(oldfd int) (fd int, err error) + +func Dup2(oldfd, newfd int) error { + // Android O and newer blocks dup2; riscv and arm64 don't implement dup2. + if runtime.GOOS == "android" || runtime.GOARCH == "riscv64" || runtime.GOARCH == "arm64" { + return Dup3(oldfd, newfd, 0) + } + return dup2(oldfd, newfd) +} + +//sys Dup3(oldfd int, newfd int, flags int) (err error) +//sysnb EpollCreate1(flag int) (fd int, err error) +//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) +//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 +//sys Exit(code int) = SYS_EXIT_GROUP +//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) +//sys FinitModule(fd int, params string, flags int) (err error) +//sys Flistxattr(fd int, dest []byte) (sz int, err error) +//sys Flock(fd int, how int) (err error) +//sys Fremovexattr(fd int, attr string) (err error) +//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) +//sys Fsync(fd int) (err error) +//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 +//sysnb Getpgid(pid int) (pgid int, err error) + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//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) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettid() (tid int) +//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) +//sys InitModule(moduleImage []byte, params string) (err error) +//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) +//sysnb InotifyInit1(flags int) (fd int, err error) +//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) +//sysnb Kill(pid int, sig syscall.Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG +//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) +//sys Listxattr(path string, dest []byte) (sz int, err error) +//sys Llistxattr(path string, dest []byte) (sz int, err error) +//sys Lremovexattr(path string, attr string) (err error) +//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) +//sys MemfdCreate(name string, flags int) (fd int, err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) +//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT +//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 +//sys read(fd int, p []byte) (n int, err error) +//sys Removexattr(path string, attr string) (err error) +//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) +//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) +//sys Setns(fd int, nstype int) (err error) + +// PrctlRetInt performs a prctl operation specified by option and further +// optional arguments arg2 through arg5 depending on option. It returns a +// non-negative integer that is returned by the prctl syscall. +func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { + ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + +// issue 1435. +// On linux Setuid and Setgid only affects the current thread, not the process. +// This does not match what most callers expect so we must return an error +// here rather than letting the caller think that the call succeeded. + +func Setuid(uid int) (err error) { + return EOPNOTSUPP +} + +func Setgid(uid int) (err error) { + return EOPNOTSUPP +} + +// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. +// If the call fails due to other reasons, current fsgid will be returned. +func SetfsgidRetGid(gid int) (int, error) { + return setfsgid(gid) +} + +// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability +// If the call fails due to other reasons, current fsuid will be returned. +func SetfsuidRetUid(uid int) (int, error) { + return setfsuid(uid) +} + +func Setfsgid(gid int) error { + _, err := setfsgid(gid) + return err +} + +func Setfsuid(uid int) error { + _, err := setfsuid(uid) + return err +} + +func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { + return signalfd(fd, sigmask, _C__NSIG/8, flags) +} + +//sys Setpriority(which int, who int, prio int) (err error) +//sys Setxattr(path string, attr string, data []byte, flags int) (err error) +//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4 +//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) +//sys Sync() +//sys Syncfs(fd int) (err error) +//sysnb Sysinfo(info *Sysinfo_t) (err error) +//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) +//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) +//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) +//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) +//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sysnb Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 +//sys Unshare(flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys exitThread(code int) (err error) = SYS_EXIT +//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ +//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE +//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV +//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV +//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV +//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV +//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 +//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + iovecs[i].Base = &b[0] + } else { + iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit +// systems, hi will always be 0. On 32-bit systems, offs will be split in half. +// preadv/pwritev chose this calling convention so they don't need to add a +// padding-register for alignment on ARM. +func offs2lohi(offs int64) (lo, hi uintptr) { + return uintptr(offs), uintptr(uint64(offs) >> SizeofLong) +} + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv(fd, iovecs, lo, hi) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv2(fd, iovecs, lo, hi, flags) + readvRacedetect(iovecs, n, err) + return n, err +} + +func readvRacedetect(iovecs []Iovec, n int, err error) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) + } + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } +} + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = writev(fd, iovecs) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev(fd, iovecs, lo, hi) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev2(fd, iovecs, lo, hi, flags) + writevRacedetect(iovecs, n) + return n, err +} + +func writevRacedetect(iovecs []Iovec, n int) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceReadRange(unsafe.Pointer(iovecs[i].Base), m) + } + } +} + +// mmap varies by architecture; see syscall_linux_*.go. +//sys munmap(addr uintptr, length uintptr) (err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +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) +} + +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, +// using the specified flags. +func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { + var p unsafe.Pointer + if len(iovs) > 0 { + p = unsafe.Pointer(&iovs[0]) + } + + n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) + if errno != 0 { + return 0, syscall.Errno(errno) + } + + return int(n), nil +} + +func isGroupMember(gid int) bool { + groups, err := Getgroups() + if err != nil { + return false + } + + for _, g := range groups { + if g == gid { + return true + } + } + return false +} + +//sys faccessat(dirfd int, path string, mode uint32) (err error) +//sys Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + if flags == 0 { + return faccessat(dirfd, path, mode) + } + + if err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM { + return err + } + + // The Linux kernel faccessat system call does not take any flags. + // The glibc faccessat implements the flags itself; see + // https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD + // Because people naturally expect syscall.Faccessat to act + // like C faccessat, we do the same. + + if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { + return EINVAL + } + + var st Stat_t + if err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil { + return err + } + + mode &= 7 + if mode == 0 { + return nil + } + + var uid int + if flags&AT_EACCESS != 0 { + uid = Geteuid() + } else { + uid = Getuid() + } + + if uid == 0 { + if mode&1 == 0 { + // Root can read and write any file. + return nil + } + if st.Mode&0111 != 0 { + // Root can execute any file that anybody can execute. + return nil + } + return EACCES + } + + var fmode uint32 + if uint32(uid) == st.Uid { + fmode = (st.Mode >> 6) & 7 + } else { + var gid int + if flags&AT_EACCESS != 0 { + gid = Getegid() + } else { + gid = Getgid() + } + + if uint32(gid) == st.Gid || isGroupMember(gid) { + fmode = (st.Mode >> 3) & 7 + } else { + fmode = st.Mode & 7 + } + } + + if fmode&mode == mode { + return nil + } + + return EACCES +} + +//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT +//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT + +// fileHandle is the argument to nameToHandleAt and openByHandleAt. We +// originally tried to generate it via unix/linux/types.go with "type +// fileHandle C.struct_file_handle" but that generated empty structs +// for mips64 and mips64le. Instead, hard code it for now (it's the +// same everywhere else) until the mips64 generator issue is fixed. +type fileHandle struct { + Bytes uint32 + Type int32 +} + +// FileHandle represents the C struct file_handle used by +// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see +// OpenByHandleAt). +type FileHandle struct { + *fileHandle +} + +// NewFileHandle constructs a FileHandle. +func NewFileHandle(handleType int32, handle []byte) FileHandle { + const hdrSize = unsafe.Sizeof(fileHandle{}) + buf := make([]byte, hdrSize+uintptr(len(handle))) + copy(buf[hdrSize:], handle) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Type = handleType + fh.Bytes = uint32(len(handle)) + return FileHandle{fh} +} + +func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) } +func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type } +func (fh *FileHandle) Bytes() []byte { + n := fh.Size() + if n == 0 { + return nil + } + return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n] +} + +// NameToHandleAt wraps the name_to_handle_at system call; it obtains +// a handle for a path name. +func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) { + var mid _C_int + // Try first with a small buffer, assuming the handle will + // only be 32 bytes. + size := uint32(32 + unsafe.Sizeof(fileHandle{})) + didResize := false + for { + buf := make([]byte, size) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{})) + err = nameToHandleAt(dirfd, path, fh, &mid, flags) + if err == EOVERFLOW { + if didResize { + // We shouldn't need to resize more than once + return + } + didResize = true + size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{})) + continue + } + if err != nil { + return + } + return FileHandle{fh}, int(mid), nil + } +} + +// OpenByHandleAt wraps the open_by_handle_at system call; it opens a +// file via a handle as previously returned by NameToHandleAt. +func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) { + return openByHandleAt(mountFD, handle.fileHandle, flags) +} + +// Klogset wraps the sys_syslog system call; it sets console_loglevel to +// the value specified by arg and passes a dummy pointer to bufp. +func Klogset(typ int, arg int) (err error) { + var p unsafe.Pointer + _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg)) + if errno != 0 { + return errnoErr(errno) + } + return nil +} + +// RemoteIovec is Iovec with the pointer replaced with an integer. +// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer +// refers to a location in a different process' address space, which +// would confuse the Go garbage collector. +type RemoteIovec struct { + Base uintptr + Len int +} + +//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV +//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV + +/* + * Unimplemented + */ +// AfsSyscall +// Alarm +// ArchPrctl +// Brk +// ClockNanosleep +// ClockSettime +// Clone +// EpollCtlOld +// EpollPwait +// EpollWaitOld +// Execve +// Fork +// Futex +// GetKernelSyms +// GetMempolicy +// GetRobustList +// GetThreadArea +// Getitimer +// Getpmsg +// IoCancel +// IoDestroy +// IoGetevents +// IoSetup +// IoSubmit +// IoprioGet +// IoprioSet +// KexecLoad +// LookupDcookie +// Mbind +// MigratePages +// Mincore +// ModifyLdt +// Mount +// MovePages +// MqGetsetattr +// MqNotify +// MqOpen +// MqTimedreceive +// MqTimedsend +// MqUnlink +// Mremap +// Msgctl +// Msgget +// Msgrcv +// Msgsnd +// Nfsservctl +// Personality +// Pselect6 +// Ptrace +// Putpmsg +// Quotactl +// Readahead +// Readv +// RemapFilePages +// RestartSyscall +// RtSigaction +// RtSigpending +// RtSigprocmask +// RtSigqueueinfo +// RtSigreturn +// RtSigsuspend +// RtSigtimedwait +// SchedGetPriorityMax +// SchedGetPriorityMin +// SchedGetparam +// SchedGetscheduler +// SchedRrGetInterval +// SchedSetparam +// SchedYield +// Security +// Semctl +// Semget +// Semop +// Semtimedop +// SetMempolicy +// SetRobustList +// SetThreadArea +// SetTidAddress +// Shmat +// Shmctl +// Shmdt +// Shmget +// Sigaltstack +// Swapoff +// Swapon +// Sysfs +// TimerCreate +// TimerDelete +// TimerGetoverrun +// TimerGettime +// TimerSettime +// Tkill (obsolete) +// Tuxcall +// Umount2 +// Uselib +// Utimensat +// Vfork +// Vhangup +// Vserver +// Waitid +// _Sysctl diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go new file mode 100644 index 0000000..c97c2ee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -0,0 +1,387 @@ +// Copyright 2009 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. + +// +build 386,linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +// 64-bit file system and 32-bit uid calls +// (386 default is 32-bit file system and 16-bit uid). +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sysnb InotifyInit() (fd int, err error) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 +//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 +//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) +//sys Pause() (err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +// On x86 Linux, all the socket calls go through an extra indirection, +// I think because the 5-register system call interface can't handle +// the 6-argument calls like sendto and recvfrom. Instead the +// arguments to the underlying system call are the number below +// and a pointer to an array of uintptr. We hide the pointer in the +// socketcall assembly to avoid allocation on every system call. + +const ( + // see linux/net.h + _SOCKET = 1 + _BIND = 2 + _CONNECT = 3 + _LISTEN = 4 + _ACCEPT = 5 + _GETSOCKNAME = 6 + _GETPEERNAME = 7 + _SOCKETPAIR = 8 + _SEND = 9 + _RECV = 10 + _SENDTO = 11 + _RECVFROM = 12 + _SHUTDOWN = 13 + _SETSOCKOPT = 14 + _GETSOCKOPT = 15 + _SENDMSG = 16 + _RECVMSG = 17 + _ACCEPT4 = 18 + _RECVMMSG = 19 + _SENDMMSG = 20 +) + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) + if e != 0 { + err = e + } + return +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socket(domain int, typ int, proto int) (fd int, err error) { + fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e != 0 { + err = e + } + return +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) + if e != 0 { + err = e + } + return +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + if e != 0 { + err = e + } + return +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e != 0 { + err = e + } + return +} + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Listen(s int, n int) (err error) { + _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Shutdown(s, how int) (err error) { + _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go new file mode 100644 index 0000000..72efe86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -0,0 +1,194 @@ +// Copyright 2009 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. + +// +build amd64,linux + +package unix + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sysnb inotifyInit() (fd int, err error) + +func InotifyInit() (fd int, err error) { + // First try inotify_init1, because Android's seccomp policy blocks the latter. + fd, err = InotifyInit1(0) + if err == ENOSYS { + fd, err = inotifyInit() + } + return +} + +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + // Use fstatat, because Android's seccomp policy blocks stat. + return Fstatat(AT_FDCWD, path, stat, 0) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + errno := gettimeofday(tv) + if errno != 0 { + return errno + } + return nil +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + errno := gettimeofday(&tv) + if errno != 0 { + return 0, errno + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func (r *PtraceRegs) PC() uint64 { return r.Rip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go new file mode 100644 index 0000000..baa771f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -0,0 +1,13 @@ +// 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. + +// +build amd64,linux +// +build gc + +package unix + +import "syscall" + +//go:noescape +func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go new file mode 100644 index 0000000..496837b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -0,0 +1,286 @@ +// Copyright 2009 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. + +// +build arm,linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + // Try pipe2 first for Android O, then try pipe for kernel 2.6.23. + err = pipe2(&pp, 0) + if err == ENOSYS { + err = pipe(&pp) + } + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +// 64-bit file system and 32-bit uid calls +// (16-bit uid calls are not always supported in newer kernels) +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sysnb InotifyInit() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 +//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 +//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and arm_sync_file_range syscalls differ only in the + // order of their arguments. + return armSyncFileRange(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go new file mode 100644 index 0000000..c6de6b9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -0,0 +1,245 @@ +// 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. + +// +build arm64,linux + +package unix + +import "unsafe" + +func EpollCreate(size int) (fd int, err error) { + if size <= 0 { + return -1, EINVAL + } + return EpollCreate1(0) +} + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, 0) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +// Getrlimit prefers the prlimit64 system call. See issue 38604. +func Getrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + return getrlimit(resource, rlim) +} + +// Setrlimit prefers the prlimit64 system call. See issue 38604. +func Setrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + return setrlimit(resource, rlim) +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var ts *Timespec + if timeout >= 0 { + ts = new(Timespec) + *ts = NsecToTimespec(int64(timeout) * 1e6) + } + if len(fds) == 0 { + return ppoll(nil, 0, ts, nil) + } + return ppoll(&fds[0], len(fds), ts, nil) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go new file mode 100644 index 0000000..9edf396 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go @@ -0,0 +1,14 @@ +// Copyright 2018 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. + +// +build linux,gc + +package unix + +// SyscallNoError may be used instead of Syscall for syscalls that don't fail. +func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) + +// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't +// fail. +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go new file mode 100644 index 0000000..90e33d8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go @@ -0,0 +1,16 @@ +// Copyright 2018 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. + +// +build linux,gc,386 + +package unix + +import "syscall" + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go new file mode 100644 index 0000000..1a97baa --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go @@ -0,0 +1,13 @@ +// Copyright 2009 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. + +// +build arm,gc,linux + +package unix + +import "syscall" + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go new file mode 100644 index 0000000..308eb7a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go @@ -0,0 +1,30 @@ +// Copyright 2018 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. + +// +build linux,gccgo,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} + +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go new file mode 100644 index 0000000..aa7fc9e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go @@ -0,0 +1,20 @@ +// Copyright 2018 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. + +// +build linux,gccgo,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go new file mode 100644 index 0000000..f028747 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -0,0 +1,230 @@ +// 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. + +// +build linux +// +build mips64 mips64le + +package unix + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, 0) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +type stat_t struct { + Dev uint32 + Pad0 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad1 [3]uint32 + Size int64 + Atime uint32 + Atime_nsec uint32 + Mtime uint32 + Mtime_nsec uint32 + Ctime uint32 + Ctime_nsec uint32 + Blksize uint32 + Pad2 uint32 + Blocks int64 +} + +//sys fstat(fd int, st *stat_t) (err error) +//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys lstat(path string, st *stat_t) (err error) +//sys stat(path string, st *stat_t) (err error) + +func Fstat(fd int, s *Stat_t) (err error) { + st := &stat_t{} + err = fstat(fd, st) + fillStat_t(s, st) + return +} + +func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { + st := &stat_t{} + err = fstatat(dirfd, path, st, flags) + fillStat_t(s, st) + return +} + +func Lstat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = lstat(path, st) + fillStat_t(s, st) + return +} + +func Stat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = stat(path, st) + fillStat_t(s, st) + return +} + +func fillStat_t(s *Stat_t, st *stat_t) { + s.Dev = st.Dev + s.Ino = st.Ino + s.Mode = st.Mode + s.Nlink = st.Nlink + s.Uid = st.Uid + s.Gid = st.Gid + s.Rdev = st.Rdev + s.Size = st.Size + s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} + s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} + s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} + s.Blksize = st.Blksize + s.Blocks = st.Blocks +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go new file mode 100644 index 0000000..c113281 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -0,0 +1,238 @@ +// 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. + +// +build linux +// +build mips mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sysnb InotifyInit() (fd int, err error) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 + +//sys Pause() (err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + p, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) + if e != 0 { + err = errnoErr(e) + } + return +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe() (p1 int, p2 int, err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + p[0], p[1], err = pipe() + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go new file mode 100644 index 0000000..3493744 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -0,0 +1,156 @@ +// Copyright 2009 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. + +// +build linux +// +build ppc64 ppc64le + +package unix + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT +//sysnb Getuid() (uid int) +//sysnb InotifyInit() (fd int, err error) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func (r *PtraceRegs) PC() uint64 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go new file mode 100644 index 0000000..b0b1505 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -0,0 +1,230 @@ +// Copyright 2018 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. + +// +build riscv64,linux + +package unix + +import "unsafe" + +func EpollCreate(size int) (fd int, err error) { + if size <= 0 { + return -1, EINVAL + } + return EpollCreate1(0) +} + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, 0) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var ts *Timespec + if timeout >= 0 { + ts = new(Timespec) + *ts = NsecToTimespec(int64(timeout) * 1e6) + } + if len(fds) == 0 { + return ppoll(nil, 0, ts, nil) + } + return ppoll(&fds[0], len(fds), ts, nil) +} + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} + +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go new file mode 100644 index 0000000..2363f74 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -0,0 +1,342 @@ +// 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. + +// +build s390x,linux + +package unix + +import ( + "unsafe" +) + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sysnb InotifyInit() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0. + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. +// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} + r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// On s390x Linux, all the socket calls go through an extra indirection. +// The arguments to the underlying system call (SYS_SOCKETCALL) are the +// number below and a pointer to an array of uintptr. +const ( + // see linux/net.h + netSocket = 1 + netBind = 2 + netConnect = 3 + netListen = 4 + netAccept = 5 + netGetSockName = 6 + netGetPeerName = 7 + netSocketPair = 8 + netSend = 9 + netRecv = 10 + netSendTo = 11 + netRecvFrom = 12 + netShutdown = 13 + netSetSockOpt = 14 + netGetSockOpt = 15 + netSendMsg = 16 + netRecvMsg = 17 + netAccept4 = 18 + netRecvMMsg = 19 + netSendMMsg = 20 +) + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { + args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} + fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) error { + args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socket(domain int, typ int, proto int) (int, error) { + args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} + fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} + _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { + args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)} + _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func recvmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func Listen(s int, n int) error { + args := [2]uintptr{uintptr(s), uintptr(n)} + _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func Shutdown(s, how int) error { + args := [2]uintptr{uintptr(s), uintptr(how)} + _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go new file mode 100644 index 0000000..d389f15 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -0,0 +1,151 @@ +// Copyright 2009 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. + +// +build sparc64,linux + +package unix + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys dup2(oldfd int, newfd int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sysnb InotifyInit() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func (r *PtraceRegs) PC() uint64 { return r.Tpc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go new file mode 100644 index 0000000..1e6843b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -0,0 +1,603 @@ +// Copyright 2009,2010 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. + +// NetBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { + var olen uintptr + + // Get a list of all sysctl nodes below the given MIB by performing + // a sysctl for the given MIB with CTL_QUERY appended. + mib = append(mib, CTL_QUERY) + qnode := Sysctlnode{Flags: SYSCTL_VERS_1} + qp := (*byte)(unsafe.Pointer(&qnode)) + sz := unsafe.Sizeof(qnode) + if err = sysctl(mib, nil, &olen, qp, sz); err != nil { + return nil, err + } + + // Now that we know the size, get the actual nodes. + nodes = make([]Sysctlnode, olen/sz) + np := (*byte)(unsafe.Pointer(&nodes[0])) + if err = sysctl(mib, np, &olen, qp, sz); err != nil { + return nil, err + } + + return nodes, nil +} + +func nametomib(name string) (mib []_C_int, err error) { + // Split name into components. + var parts []string + last := 0 + for i := 0; i < len(name); i++ { + if name[i] == '.' { + parts = append(parts, name[last:i]) + last = i + 1 + } + } + parts = append(parts, name[last:]) + + // Discover the nodes and construct the MIB OID. + for partno, part := range parts { + nodes, err := sysctlNodes(mib) + if err != nil { + return nil, err + } + for _, node := range nodes { + n := make([]byte, 0) + for i := range node.Name { + if node.Name[i] != 0 { + n = append(n, byte(node.Name[i])) + } + } + if string(n) == part { + mib = append(mib, _C_int(node.Num)) + break + } + } + if len(mib) != partno+1 { + return nil, EINVAL + } + } + + return mib, nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +//sysnb pipe() (fd1 int, fd2 int, err error) +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + p[0], p[1], err = pipe() + return +} + +//sys Getdents(fd int, buf []byte) (n int, err error) +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +func setattrlistTimes(path string, times []Timespec, flags int) error { + // used on Darwin for UtimesNano + return ENOSYS +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { + var value Ptmget + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + runtime.KeepAlive(value) + return &value, err +} + +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 { + 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 { + 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 { + 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 { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +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 Fstatvfs(fd int, buf *Statvfs_t) (err error) { + return Fstatvfs1(fd, buf, ST_WAIT) +} + +func Statvfs(path string, buf *Statvfs_t) (err error) { + return Statvfs1(path, buf, ST_WAIT) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) +//sys Exit(code int) +//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err 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 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) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// ____semctl13 +// __clone +// __fhopen40 +// __fhstat40 +// __fhstatvfs140 +// __fstat30 +// __getcwd +// __getfh30 +// __getlogin +// __lstat30 +// __mount50 +// __msgctl13 +// __msync13 +// __ntp_gettime30 +// __posix_chown +// __posix_fchown +// __posix_lchown +// __posix_rename +// __setlogin +// __shmctl13 +// __sigaction_sigtramp +// __sigaltstack14 +// __sigpending14 +// __sigprocmask14 +// __sigsuspend14 +// __sigtimedwait +// __stat30 +// __syscall +// __vfork14 +// _ksem_close +// _ksem_destroy +// _ksem_getvalue +// _ksem_init +// _ksem_open +// _ksem_post +// _ksem_trywait +// _ksem_unlink +// _ksem_wait +// _lwp_continue +// _lwp_create +// _lwp_ctl +// _lwp_detach +// _lwp_exit +// _lwp_getname +// _lwp_getprivate +// _lwp_kill +// _lwp_park +// _lwp_self +// _lwp_setname +// _lwp_setprivate +// _lwp_suspend +// _lwp_unpark +// _lwp_unpark_all +// _lwp_wait +// _lwp_wakeup +// _pset_bind +// _sched_getaffinity +// _sched_getparam +// _sched_setaffinity +// _sched_setparam +// acct +// aio_cancel +// aio_error +// aio_fsync +// aio_read +// aio_return +// aio_suspend +// aio_write +// break +// clock_getres +// clock_gettime +// clock_settime +// compat_09_ogetdomainname +// compat_09_osetdomainname +// compat_09_ouname +// compat_10_omsgsys +// compat_10_osemsys +// compat_10_oshmsys +// compat_12_fstat12 +// compat_12_getdirentries +// compat_12_lstat12 +// compat_12_msync +// compat_12_oreboot +// compat_12_oswapon +// compat_12_stat12 +// compat_13_sigaction13 +// compat_13_sigaltstack13 +// compat_13_sigpending13 +// compat_13_sigprocmask13 +// compat_13_sigreturn13 +// compat_13_sigsuspend13 +// compat_14___semctl +// compat_14_msgctl +// compat_14_shmctl +// compat_16___sigaction14 +// compat_16___sigreturn14 +// compat_20_fhstatfs +// compat_20_fstatfs +// compat_20_getfsstat +// compat_20_statfs +// compat_30___fhstat30 +// compat_30___fstat13 +// compat_30___lstat13 +// compat_30___stat13 +// compat_30_fhopen +// compat_30_fhstat +// compat_30_fhstatvfs1 +// compat_30_getdents +// compat_30_getfh +// compat_30_ntp_gettime +// compat_30_socket +// compat_40_mount +// compat_43_fstat43 +// compat_43_lstat43 +// compat_43_oaccept +// compat_43_ocreat +// compat_43_oftruncate +// compat_43_ogetdirentries +// compat_43_ogetdtablesize +// compat_43_ogethostid +// compat_43_ogethostname +// compat_43_ogetkerninfo +// compat_43_ogetpagesize +// compat_43_ogetpeername +// compat_43_ogetrlimit +// compat_43_ogetsockname +// compat_43_okillpg +// compat_43_olseek +// compat_43_ommap +// compat_43_oquota +// compat_43_orecv +// compat_43_orecvfrom +// compat_43_orecvmsg +// compat_43_osend +// compat_43_osendmsg +// compat_43_osethostid +// compat_43_osethostname +// compat_43_osetrlimit +// compat_43_osigblock +// compat_43_osigsetmask +// compat_43_osigstack +// compat_43_osigvec +// compat_43_otruncate +// compat_43_owait +// compat_43_stat43 +// execve +// extattr_delete_fd +// extattr_delete_file +// extattr_delete_link +// extattr_get_fd +// extattr_get_file +// extattr_get_link +// extattr_list_fd +// extattr_list_file +// extattr_list_link +// extattr_set_fd +// extattr_set_file +// extattr_set_link +// extattrctl +// fchroot +// fdatasync +// fgetxattr +// fktrace +// flistxattr +// fork +// fremovexattr +// fsetxattr +// fstatvfs1 +// fsync_range +// getcontext +// getitimer +// getvfsstat +// getxattr +// ktrace +// lchflags +// lchmod +// lfs_bmapv +// lfs_markv +// lfs_segclean +// lfs_segwait +// lgetxattr +// lio_listio +// listxattr +// llistxattr +// lremovexattr +// lseek +// lsetxattr +// lutimes +// madvise +// mincore +// minherit +// modctl +// mq_close +// mq_getattr +// mq_notify +// mq_open +// mq_receive +// mq_send +// mq_setattr +// mq_timedreceive +// mq_timedsend +// mq_unlink +// mremap +// msgget +// msgrcv +// msgsnd +// nfssvc +// ntp_adjtime +// pmc_control +// pmc_get_info +// pollts +// preadv +// profil +// pselect +// pset_assign +// pset_create +// pset_destroy +// ptrace +// pwritev +// quotactl +// rasctl +// readv +// reboot +// removexattr +// sa_enable +// sa_preempt +// sa_register +// sa_setconcurrency +// sa_stacks +// sa_yield +// sbrk +// sched_yield +// semconfig +// semget +// semop +// setcontext +// setitimer +// setxattr +// shmat +// shmdt +// shmget +// sstk +// statvfs1 +// swapctl +// sysarch +// syscall +// timer_create +// timer_delete +// timer_getoverrun +// timer_gettime +// timer_settime +// undelete +// utrace +// uuidgen +// vadvise +// vfork +// writev diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go new file mode 100644 index 0000000..24da8b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go @@ -0,0 +1,37 @@ +// Copyright 2009 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. + +// +build 386,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go new file mode 100644 index 0000000..25a0ac8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go @@ -0,0 +1,37 @@ +// Copyright 2009 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. + +// +build amd64,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go new file mode 100644 index 0000000..21591ec --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go @@ -0,0 +1,37 @@ +// Copyright 2013 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. + +// +build arm,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go new file mode 100644 index 0000000..8047496 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go @@ -0,0 +1,37 @@ +// 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. + +// +build arm64,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go new file mode 100644 index 0000000..6a50b50 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -0,0 +1,390 @@ +// Copyright 2009,2010 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. + +// OpenBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sort" + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func nametomib(name string) (mib []_C_int, err error) { + i := sort.Search(len(sysctlMib), func(i int) bool { + return sysctlMib[i].ctlname >= name + }) + if i < len(sysctlMib) && sysctlMib[i].ctlname == name { + return sysctlMib[i].ctloid, nil + } + return nil, EINVAL +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofUvmexp { + return nil, EIO + } + return &u, nil +} + +func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO was allowed by getdirentries. + err = EIO + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +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) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +func setattrlistTimes(path string, times []Timespec, flags int) error { + // used on Darwin for UtimesNano + return ENOSYS +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) + +func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +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 { + 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 { + 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 { + 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 { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrtable() (rtable int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err 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 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) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setrtable(rtable int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// __getcwd +// __semctl +// __syscall +// __sysctl +// adjfreq +// break +// clock_getres +// clock_gettime +// clock_settime +// closefrom +// execve +// fhopen +// fhstat +// fhstatfs +// fork +// futimens +// getfh +// getgid +// getitimer +// getlogin +// getresgid +// getresuid +// getthrid +// ktrace +// lfs_bmapv +// lfs_markv +// lfs_segclean +// lfs_segwait +// mincore +// minherit +// mount +// mquery +// msgctl +// msgget +// msgrcv +// msgsnd +// nfssvc +// nnpfspioctl +// preadv +// profil +// pwritev +// quotactl +// readv +// reboot +// renameat +// rfork +// sched_yield +// semget +// semop +// setgroups +// setitimer +// setsockopt +// shmat +// shmctl +// shmdt +// shmget +// sigaction +// sigaltstack +// sigpending +// sigprocmask +// sigreturn +// sigsuspend +// sysarch +// syscall +// threxit +// thrsigdivert +// thrsleep +// thrwakeup +// vfork +// writev diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go new file mode 100644 index 0000000..42b5a0e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go @@ -0,0 +1,41 @@ +// Copyright 2009 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. + +// +build 386,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/386 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go new file mode 100644 index 0000000..6ea4b48 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go @@ -0,0 +1,41 @@ +// Copyright 2009 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. + +// +build amd64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go new file mode 100644 index 0000000..1c3d26f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go @@ -0,0 +1,41 @@ +// 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. + +// +build arm,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/arm the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go new file mode 100644 index 0000000..a8c458c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go @@ -0,0 +1,41 @@ +// 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. + +// +build arm64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go new file mode 100644 index 0000000..30f2853 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go @@ -0,0 +1,35 @@ +// 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 unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of OpenBSD the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go new file mode 100644 index 0000000..184786e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -0,0 +1,740 @@ +// Copyright 2009 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. + +// Solaris system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_solaris.go or syscall_unix.go. + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +// Implemented in runtime/syscall_solaris.go. +type syscallFunc uintptr + +func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 + raw RawSockaddrDatalink +} + +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 +} + +//sysnb pipe(p *[2]_C_int) (n int, err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + n, err := pipe(&pp) + if n != 0 { + return err + } + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return nil +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +// 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) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + return string(buf[:vallen-1]), nil +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + // Getcwd will return an error if it failed for any reason. + _, err = Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + +/* + * Wrapped + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + // Check for error and sanity check group count. Newer versions of + // Solaris allow up to 1024 (NGROUPS_MAX). + if n < 0 || n > 1024 { + if err != nil { + return nil, err + } + return nil, EINVAL + } else if n == 0 { + return nil, nil + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if n == -1 { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + // Final argument is (basep *uintptr) and the syscall doesn't take nil. + // TODO(rsc): Can we use a single global basep for all calls? + return Getdents(fd, buf, new(uintptr)) +} + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } + +func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { + var status _C_int + rpid, err := wait4(int32(pid), &status, options, rusage) + wpid := int(rpid) + if wpid == -1 { + return wpid, err + } + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return wpid, nil +} + +//sys gethostname(buf []byte) (n int, err error) + +func Gethostname() (name string, err error) { + var buf [MaxHostNameLen]byte + n, err := gethostname(buf[:]) + if n != 0 { + return "", err + } + n = clen(buf[:]) + if n < 1 { + return "", EFAULT + } + return string(buf[:n]), nil +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +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]))) +} + +//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) + +func UtimesNano(path string, ts []Timespec) 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 UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) 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) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) + var err error + if errno != 0 { + err = errno + } + return int(valptr), err +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) + if e1 != 0 { + return e1 + } + return nil +} + +//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) + +func Futimesat(dirfd int, path string, tv []Timeval) error { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + if tv == nil { + return futimesat(dirfd, pathp, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +// Solaris doesn't have an futimes function because it allows NULL to be +// specified as the path for futimesat. However, Go doesn't like +// NULL-style string interfaces, so this simple wrapper is provided. +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimesat(fd, nil, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // Assume path ends at NUL. + // This is not technically the Solaris semantics for + // abstract Unix domain sockets -- they are supposed + // to be uninterpreted fixed-size binary blobs -- but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return nil, EAFNOSUPPORT +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var iov Iovec + if len(p) > 0 { + iov.Base = (*int8)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy int8 + if len(oob) > 0 { + // receive at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Accrightslen = int32(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Accrightslen) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = (*int8)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy int8 + if len(oob) > 0 { + // send at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Accrightslen = int32(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +//sys acct(path *byte) (err error) + +func Acct(path string) (err error) { + if len(path) == 0 { + // Assume caller wants to disable accounting. + return acct(nil) + } + + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + return acct(pathp) +} + +//sys __makedev(version int, major uint, minor uint) (val uint64) + +func Mkdev(major, minor uint32) uint64 { + return __makedev(NEWDEV, uint(major), uint(minor)) +} + +//sys __major(version int, dev uint64) (val uint) + +func Major(dev uint64) uint32 { + return uint32(__major(NEWDEV, dev)) +} + +//sys __minor(version int, dev uint64) (val uint) + +func Minor(dev uint64) uint32 { + return uint32(__minor(NEWDEV, dev)) +} + +/* + * Expose the ioctl function + */ + +//sys ioctl(fd int, req uint, arg uintptr) (err error) + +func IoctlSetTermio(fd int, req uint, value *Termio) error { + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlGetTermio(fd int, req uint) (*Termio, error) { + var value Termio + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +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) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Creat(path string, mode uint32) (fd int, err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//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 Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) +//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgid int, err error) +//sys Geteuid() (euid int) +//sys Getegid() (egid int) +//sys Getppid() (ppid int) +//sys Getpriority(which int, who int) (n int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Madvise(b []byte, advice int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err 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 Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (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, flags int, mode uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys Pause() (err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Setuid(uid int) (err error) +//sys Shutdown(s int, how int) (err error) = libsocket.shutdown +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Sync() (err error) +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sys Truncate(path string, length int64) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = libc.umount +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto +//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair +//sys write(fd int, p []byte) (n int, err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +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) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go new file mode 100644 index 0000000..b22a34d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go @@ -0,0 +1,27 @@ +// Copyright 2009 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. + +// +build amd64,solaris + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go new file mode 100644 index 0000000..400ba9f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -0,0 +1,430 @@ +// Copyright 2009 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +import ( + "bytes" + "sort" + "sync" + "syscall" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// Do the interface allocations only once for common +// Errno values. +var ( + errEAGAIN error = syscall.EAGAIN + errEINVAL error = syscall.EINVAL + errENOENT error = syscall.ENOENT +) + +var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + } + return e +} + +// ErrnoName returns the error name for error number e. +func ErrnoName(e syscall.Errno) string { + i := sort.Search(len(errorList), func(i int) bool { + return errorList[i].num >= e + }) + if i < len(errorList) && errorList[i].num == e { + return errorList[i].name + } + return "" +} + +// SignalName returns the signal name for signal number s. +func SignalName(s syscall.Signal) string { + i := sort.Search(len(signalList), func(i int) bool { + return signalList[i].num >= s + }) + if i < len(signalList) && signalList[i].num == s { + return signalList[i].name + } + return "" +} + +// SignalNum returns the syscall.Signal for signal named s, +// or 0 if a signal with such name is not found. +// The signal name should start with "SIG". +func SignalNum(s string) syscall.Signal { + signalNameMapOnce.Do(func() { + signalNameMap = make(map[string]syscall.Signal, len(signalList)) + for _, signal := range signalList { + signalNameMap[signal.name] = signal.num + } + }) + return signalNameMap[s] +} + +// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. +func clen(n []byte) int { + i := bytes.IndexByte(n, 0) + if i == -1 { + i = len(n) + } + return i +} + +// Mmap manager, for use by operating system-specific implementations. + +type mmapper struct { + sync.Mutex + active map[*byte][]byte // active mappings; key is last byte in mapping + mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) + munmap func(addr uintptr, length uintptr) error +} + +func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + if length <= 0 { + return nil, EINVAL + } + + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { + return nil, errno + } + + // Use unsafe to convert addr into a []byte. + var b []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b)) + hdr.Data = unsafe.Pointer(addr) + hdr.Cap = length + hdr.Len = length + + // Register mapping in m and return it. + p := &b[cap(b)-1] + m.Lock() + defer m.Unlock() + m.active[p] = b + return b, nil +} + +func (m *mmapper) Munmap(data []byte) (err error) { + if len(data) == 0 || len(data) != cap(data) { + return EINVAL + } + + // Find the base of the mapping. + p := &data[cap(data)-1] + m.Lock() + defer m.Unlock() + b := m.active[p] + if b == nil || &b[0] != &data[0] { + return EINVAL + } + + // Unmap the memory and update m. + if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { + return errno + } + delete(m.active, p) + return nil +} + +func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Write(fd int, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = write(fd, p) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +// Sockaddr represents a socket address. +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs +} + +// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func Bind(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getpeername(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getpeername(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptByte(fd, level, opt int) (value byte, err error) { + var n byte + vallen := _Socklen(1) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func GetsockoptInt(fd, level, opt int) (value int, err error) { + var n int32 + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return int(n), err +} + +func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + return value, err +} + +func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { + var value IPMreq + vallen := _Socklen(SizeofIPMreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { + var value IPv6Mreq + vallen := _Socklen(SizeofIPv6Mreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := _Socklen(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := _Socklen(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + +func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { + var n uint64 + vallen := _Socklen(8) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { + return + } + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + ptr, n, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, flags, ptr, n) +} + +func SetsockoptByte(fd, level, opt int, value byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) +} + +func SetsockoptInt(fd, level, opt int, value int) (err error) { + var n = int32(value) + return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) +} + +func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) +} + +func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) +} + +func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) +} + +func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { + return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) +} + +func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) +} + +func SetsockoptString(fd, level, opt int, s string) (err error) { + var p unsafe.Pointer + if len(s) > 0 { + p = unsafe.Pointer(&[]byte(s)[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(s))) +} + +func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) +} + +func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) +} + +func Socket(domain, typ, proto int) (fd int, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return -1, EAFNOSUPPORT + } + fd, err = socket(domain, typ, proto) + return +} + +func Socketpair(domain, typ, proto int) (fd [2]int, err error) { + var fdx [2]int32 + err = socketpair(domain, typ, proto, &fdx) + if err == nil { + fd[0] = int(fdx[0]) + fd[1] = int(fdx[1]) + } + return +} + +var ioSync int64 + +func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } + +func SetNonblock(fd int, nonblocking bool) (err error) { + flag, err := fcntl(fd, F_GETFL, 0) + if err != nil { + return err + } + if nonblocking { + flag |= O_NONBLOCK + } else { + flag &= ^O_NONBLOCK + } + _, err = fcntl(fd, F_SETFL, flag) + return err +} + +// Exec calls execve(2), which replaces the calling executable in the process +// tree. argv0 should be the full path to an executable ("/bin/ls") and the +// executable name should also be the first argument in argv (["ls", "-l"]). +// envv are the environment variables that should be passed to the new +// process (["USER=go", "PWD=/tmp"]). +func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) +} + +// Lutimes sets the access and modification times tv on path. If path refers to +// a symlink, it is not dereferenced and the timestamps are set on the symlink. +// If tv is nil, the access and modification times are set to the current time. +// Otherwise tv must contain exactly 2 elements, with access time as the first +// element and modification time as the second element. +func Lutimes(path string, tv []Timeval) error { + if tv == nil { + return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) + } + if len(tv) != 2 { + return EINVAL + } + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go new file mode 100644 index 0000000..87bd161 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -0,0 +1,15 @@ +// 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. + +// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build gc,!ppc64le,!ppc64 + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go new file mode 100644 index 0000000..d36216c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go @@ -0,0 +1,24 @@ +// Copyright 2018 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. + +// +build linux +// +build ppc64le ppc64 +// +build gc + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall(trap, a1, a2, a3) +} +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) +} +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall(trap, a1, a2, a3) +} +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) +} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go new file mode 100644 index 0000000..1036042 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -0,0 +1,76 @@ +// 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +import "time" + +// TimespecToNSec returns the time stored in ts as nanoseconds. +func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } + +// NsecToTimespec converts a number of nanoseconds into a Timespec. +func NsecToTimespec(nsec int64) Timespec { + sec := nsec / 1e9 + nsec = nsec % 1e9 + if nsec < 0 { + nsec += 1e9 + sec-- + } + return setTimespec(sec, nsec) +} + +// TimeToTimespec converts t into a Timespec. +// On some 32-bit systems the range of valid Timespec values are smaller +// than that of time.Time values. So if t is out of the valid range of +// Timespec, it returns a zero Timespec and ERANGE. +func TimeToTimespec(t time.Time) (Timespec, error) { + sec := t.Unix() + nsec := int64(t.Nanosecond()) + ts := setTimespec(sec, nsec) + + // Currently all targets have either int32 or int64 for Timespec.Sec. + // If there were a new target with floating point type for it, we have + // to consider the rounding error. + if int64(ts.Sec) != sec { + return Timespec{}, ERANGE + } + return ts, nil +} + +// TimevalToNsec returns the time stored in tv as nanoseconds. +func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } + +// NsecToTimeval converts a number of nanoseconds into a Timeval. +func NsecToTimeval(nsec int64) Timeval { + nsec += 999 // round up to microsecond + usec := nsec % 1e9 / 1e3 + sec := nsec / 1e9 + if usec < 0 { + usec += 1e6 + sec-- + } + return setTimeval(sec, usec) +} + +// Unix returns the time stored in ts as seconds plus nanoseconds. +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +// Unix returns the time stored in tv as seconds plus nanoseconds. +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +// Nano returns the time stored in ts as nanoseconds. +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +// Nano returns the time stored in tv as nanoseconds. +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go new file mode 100644 index 0000000..168d5ae --- /dev/null +++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go @@ -0,0 +1,42 @@ +// Copyright 2018 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 unix + +import ( + "syscall" + "unsafe" +) + +// Unveil implements the unveil syscall. +// For more information see unveil(2). +// Note that the special case of blocking further +// unveil calls is handled by UnveilBlock. +func Unveil(path string, flags string) error { + pathPtr, err := syscall.BytePtrFromString(path) + if err != nil { + return err + } + flagsPtr, err := syscall.BytePtrFromString(flags) + if err != nil { + return err + } + _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0) + if e != 0 { + return e + } + return nil +} + +// UnveilBlock blocks future unveil calls. +// For more information see unveil(2). +func UnveilBlock() error { + // Both pointers must be nil. + var pathUnsafe, flagsUnsafe unsafe.Pointer + _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0) + if e != 0 { + return e + } + return nil +} diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go new file mode 100644 index 0000000..30c1d71 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -0,0 +1,240 @@ +// Copyright 2018 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. + +// +build freebsd netbsd + +package unix + +import ( + "strings" + "unsafe" +) + +// Derive extattr namespace and attribute name + +func xattrnamespace(fullattr string) (ns int, attr string, err error) { + s := strings.IndexByte(fullattr, '.') + if s == -1 { + return -1, "", ENOATTR + } + + namespace := fullattr[0:s] + attr = fullattr[s+1:] + + switch namespace { + case "user": + return EXTATTR_NAMESPACE_USER, attr, nil + case "system": + return EXTATTR_NAMESPACE_SYSTEM, attr, nil + default: + return -1, "", ENOATTR + } +} + +func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { + if len(dest) > idx { + return unsafe.Pointer(&dest[idx]) + } else { + return unsafe.Pointer(_zero) + } +} + +// FreeBSD and NetBSD implement their own syscalls to handle extended attributes + +func Getxattr(file string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) +} + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) +} + +// flags are unused on FreeBSD + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) + return +} + +func Setxattr(file string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) + return +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) + return +} + +func Removexattr(file string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFile(file, nsid, a) + return +} + +func Fremovexattr(fd int, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFd(fd, nsid, a) + return +} + +func Lremovexattr(link string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteLink(link, nsid, a) + return +} + +func Listxattr(file string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + // FreeBSD won't allow you to list xattrs from multiple namespaces + s := 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) + + /* Errors accessing system attrs are ignored so that + * we can implement the Linux-like behavior of omitting errors that + * we don't have read permissions on + * + * Linux will still error if we ask for user attributes on a file that + * we don't have read permissions on, so don't ignore those errors + */ + if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } else if e != nil { + return s, e + } + + s += stmp + destsiz -= s + if destsiz < 0 { + destsiz = 0 + } + d = initxattrdest(dest, s) + } + + return s, nil +} + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s := 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) + if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } else if e != nil { + return s, e + } + + s += stmp + destsiz -= s + if destsiz < 0 { + destsiz = 0 + } + d = initxattrdest(dest, s) + } + + return s, nil +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s := 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) + if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } else if e != nil { + return s, e + } + + s += stmp + destsiz -= s + if destsiz < 0 { + destsiz = 0 + } + d = initxattrdest(dest, s) + } + + return s, nil +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go new file mode 100644 index 0000000..104994b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -0,0 +1,1384 @@ +// mkerrors.sh -maix32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc,aix + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -maix32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3ff796dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x5 + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0xc + F_SETLKW = 0x7 + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf0 + MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 + MCL_CURRENT = 0x100 + MCL_FUTURE = 0x200 + MSG_ANY = 0x4 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fcf8df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fcf8df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3ff796bb + SIOCGIFCONFGLOB = -0x3ff79670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0x80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0x80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0x80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0x8004747e + TIOCLBIS = 0x8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0x8004747d + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0x80067411 + TIOCSETD = 0x80047401 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0x3f) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "IOT/Abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGKAP", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGSAK", "secure attention"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go new file mode 100644 index 0000000..4fc8d30 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -0,0 +1,1385 @@ +// mkerrors.sh -maix64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64,aix + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -maix64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3fef96dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLK64 = 0xc + F_SETLKW = 0xd + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf0 + MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 + MCL_CURRENT = 0x100 + MCL_FUTURE = 0x200 + MSG_ANY = 0x4 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fc78df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fc78df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3fef96bb + SIOCGIFCONFGLOB = -0x3fef9670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0xffffffff80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0xffffffff80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0xffffffff80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0xffffffff80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0xffffffff80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0xffffffff8004747e + TIOCLBIS = 0xffffffff8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0xffffffff8004747d + TIOCMBIC = 0xffffffff8004746b + TIOCMBIS = 0xffffffff8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0xffffffff80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0xffffffff80047404 + TIOCMSET = 0xffffffff8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0xffffffff80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0xffffffff80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0xffffffff80067411 + TIOCSETD = 0xffffffff80047401 + TIOCSETN = 0xffffffff8006740a + TIOCSETP = 0xffffffff80067409 + TIOCSLTC = 0xffffffff80067475 + TIOCSPGRP = 0xffffffff80047476 + TIOCSSIZE = 0xffffffff80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0xffffffff80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0xffffffff80087467 + TIOCUCNTL = 0xffffffff80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0xff) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "IOT/Abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGGRANT", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGMAX32", "secure attention"}, + {255, "SIGMAX", "signal 255"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go new file mode 100644 index 0000000..ec376f5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go @@ -0,0 +1,1788 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf007ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4008426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x8008427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8008426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xf + EVFILT_THREADMARKER = 0xf + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x17f0f5ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc0086924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6981 + SIOCRSLVMULTI = 0xc008693b + SIOCSDRVSPEC = 0x801c697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40087458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40087459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x20 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go new file mode 100644 index 0000000..fea5dfa --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -0,0 +1,1788 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf007ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xf + EVFILT_THREADMARKER = 0xf + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x17f0f5ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go new file mode 100644 index 0000000..03feefb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go @@ -0,0 +1,1788 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf007ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xf + EVFILT_THREADMARKER = 0xf + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x17f0f5ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go new file mode 100644 index 0000000..b40fb1f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -0,0 +1,1788 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf007ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xf + EVFILT_THREADMARKER = 0xf + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x17f0f5ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go new file mode 100644 index 0000000..f5e91b7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go @@ -0,0 +1,1737 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,dragonfly + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x21 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x23 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x22 + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETIF = 0x4020426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DEFAULTBUFSIZE = 0x1000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MAX_CLONES = 0x80 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x109 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DBF = 0xf + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0x8 + EVFILT_FS = -0xa + EVFILT_MARKER = 0xf + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xa + EVFILT_TIMER = -0x7 + EVFILT_USER = -0x9 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_HUP = 0x800 + EV_NODATA = 0x1000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTEXIT_LWP = 0x10000 + EXTEXIT_PROC = 0x0 + EXTEXIT_SETINT = 0x1 + EXTEXIT_SIMPLE = 0x0 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x318e72 + IFF_DEBUG = 0x4 + IFF_IDIRECT = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NPOLLING = 0x100000 + IFF_OACTIVE = 0x400 + IFF_OACTIVE_COMPAT = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_POLLING = 0x10000 + IFF_POLLING_COMPAT = 0x10000 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xf3 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UNKNOWN = 0x102 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHLIM = 0x28 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PKTOPTIONS = 0x34 + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_RESETLOG = 0x37 + IP_FW_TBL_ADD = 0x2a + IP_FW_TBL_CREATE = 0x28 + IP_FW_TBL_DEL = 0x2b + IP_FW_TBL_DESTROY = 0x29 + IP_FW_TBL_EXPIRE = 0x2f + IP_FW_TBL_FLUSH = 0x2c + IP_FW_TBL_GET = 0x2d + IP_FW_TBL_ZERO = 0x2e + IP_FW_X = 0x31 + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CONTROL_END = 0xb + MADV_CONTROL_START = 0xa + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_INVAL = 0xa + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SETMAP = 0xb + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_NOCORE = 0x20000 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_SIZEALIGN = 0x40000 + MAP_STACK = 0x400 + MAP_TRYFIXED = 0x10000 + MAP_VPAGETABLE = 0x2000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x20 + MNT_CMDFLAGS = 0xf0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x4 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SYNCHRONOUS = 0x2 + MNT_TRIM = 0x1000000 + MNT_UPDATE = 0x10000 + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0xf1f0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x1000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FBLOCKING = 0x10000 + MSG_FMASK = 0xffff0000 + MSG_FNONBLOCKING = 0x20000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_SYNC = 0x800 + MSG_TRUNC = 0x10 + MSG_UNUSED09 = 0x200 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x20000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x8000000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FAPPEND = 0x100000 + O_FASYNCWRITE = 0x800000 + O_FBLOCKING = 0x40000 + O_FMASK = 0xfc0000 + O_FNONBLOCKING = 0x80000 + O_FOFFSET = 0x200000 + O_FSYNC = 0x80 + O_FSYNCWRITE = 0x400000 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0xb + RTAX_MPLS1 = 0x8 + RTAX_MPLS2 = 0x9 + RTAX_MPLS3 = 0xa + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_MPLS1 = 0x100 + RTA_MPLS2 = 0x200 + RTA_MPLS3 = 0x400 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPLSOPS = 0x1000000 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_IWCAPSEGS = 0x400 + RTV_IWMAXSEGS = 0x200 + RTV_MSL = 0x100 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc0406929 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc0206926 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPOLLCPU = 0xc020697e + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFTSOLEN = 0xc0206980 + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFPOLLCPU = 0x8020697d + SIOCSIFTSOLEN = 0x8020697f + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_CPUHINT = 0x1030 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDSPACE = 0x100a + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDB = 0x9000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_FASTKEEP = 0x80 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x20 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0x100 + TCP_MIN_WINSHIFT = 0x5 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_SIGNATURE_ENABLE = 0x10 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCISPTMASTER = 0x20007455 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCHECKPT = 0x13 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x0 + VM_SWZONE_SIZE_MAX = 0x4000000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EASYNC = syscall.Errno(0x63) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x63) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEDIUM = syscall.Errno(0x5d) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCKPT = syscall.Signal(0x21) + SIGCKPTEXIT = syscall.Signal(0x22) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOMEDIUM", "no medium found"}, + {99, "EASYNC", "unknown error: 99"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread Scheduler"}, + {33, "SIGCKPT", "checkPoint"}, + {34, "SIGCKPTEXIT", "checkPointExit"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go new file mode 100644 index 0000000..3689c80 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -0,0 +1,1936 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4008426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8008426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x113 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40087459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x70e0000 + VM_SWZONE_SIZE_MAX = 0x2280000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go new file mode 100644 index 0000000..b8f7c3c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -0,0 +1,1935 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x113 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go new file mode 100644 index 0000000..be14bb1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -0,0 +1,1825 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x109 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xc + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0x2d8d0807e + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0x3fef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_NORTREF = 0x2 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_FASTOPEN = 0x401 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go new file mode 100644 index 0000000..7ce9c00 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -0,0 +1,1936 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x113 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x19000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go new file mode 100644 index 0000000..b3463a8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -0,0 +1,2786 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +import "syscall" + +const ( + AAFS_MAGIC = 0x5a3c69f0 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_FS_MAGIC = 0x6b414653 + AFS_SUPER_MAGIC = 0x5346414f + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2d + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ALG_OP_DECRYPT = 0x0 + ALG_OP_ENCRYPT = 0x1 + ALG_SET_AEAD_ASSOCLEN = 0x4 + ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_DRBG_ENTROPY = 0x6 + ALG_SET_IV = 0x2 + ALG_SET_KEY = 0x1 + ALG_SET_OP = 0x3 + ANON_INODE_FS_MAGIC = 0x9041934 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + AUTOFS_SUPER_MAGIC = 0x187 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BALLOON_KVM_MAGIC = 0x13661366 + BDEVFS_MAGIC = 0x62646576 + BINDERFS_SUPER_MAGIC = 0x6c6f6f70 + BINFMTFS_MAGIC = 0x42494e4d + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_ALU64 = 0x7 + BPF_AND = 0x50 + BPF_ARSH = 0xc0 + BPF_B = 0x10 + BPF_BUILD_ID_SIZE = 0x14 + BPF_CALL = 0x80 + BPF_DIV = 0x30 + BPF_DW = 0x18 + BPF_END = 0xd0 + BPF_EXIT = 0x90 + BPF_FROM_BE = 0x8 + BPF_FROM_LE = 0x0 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_F_ALLOW_MULTI = 0x2 + BPF_F_ALLOW_OVERRIDE = 0x1 + BPF_F_ANY_ALIGNMENT = 0x2 + BPF_F_QUERY_EFFECTIVE = 0x1 + BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 + BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JLE = 0xb0 + BPF_JLT = 0xa0 + BPF_JMP = 0x5 + BPF_JMP32 = 0x6 + BPF_JNE = 0x50 + BPF_JSET = 0x40 + BPF_JSGE = 0x70 + BPF_JSGT = 0x60 + BPF_JSLE = 0xd0 + BPF_JSLT = 0xc0 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MOV = 0xb0 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OBJ_NAME_LEN = 0x10 + BPF_OR = 0x40 + BPF_PSEUDO_BTF_ID = 0x3 + BPF_PSEUDO_CALL = 0x1 + BPF_PSEUDO_MAP_FD = 0x1 + BPF_PSEUDO_MAP_VALUE = 0x2 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAG_SIZE = 0x8 + BPF_TAX = 0x0 + BPF_TO_BE = 0x8 + BPF_TO_LE = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XADD = 0xc0 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BTRFS_SUPER_MAGIC = 0x9123683e + BTRFS_TEST_MAGIC = 0x73727279 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_ACK = 0x20 + CAN_ERR_BUSERROR = 0x80 + CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CRTL = 0x4 + CAN_ERR_CRTL_ACTIVE = 0x40 + CAN_ERR_CRTL_RX_OVERFLOW = 0x1 + CAN_ERR_CRTL_RX_PASSIVE = 0x10 + CAN_ERR_CRTL_RX_WARNING = 0x4 + CAN_ERR_CRTL_TX_OVERFLOW = 0x2 + CAN_ERR_CRTL_TX_PASSIVE = 0x20 + CAN_ERR_CRTL_TX_WARNING = 0x8 + CAN_ERR_CRTL_UNSPEC = 0x0 + CAN_ERR_DLC = 0x8 + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_LOSTARB = 0x2 + CAN_ERR_LOSTARB_UNSPEC = 0x0 + CAN_ERR_MASK = 0x1fffffff + CAN_ERR_PROT = 0x8 + CAN_ERR_PROT_ACTIVE = 0x40 + CAN_ERR_PROT_BIT = 0x1 + CAN_ERR_PROT_BIT0 = 0x8 + CAN_ERR_PROT_BIT1 = 0x10 + CAN_ERR_PROT_FORM = 0x2 + CAN_ERR_PROT_LOC_ACK = 0x19 + CAN_ERR_PROT_LOC_ACK_DEL = 0x1b + CAN_ERR_PROT_LOC_CRC_DEL = 0x18 + CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 + CAN_ERR_PROT_LOC_DATA = 0xa + CAN_ERR_PROT_LOC_DLC = 0xb + CAN_ERR_PROT_LOC_EOF = 0x1a + CAN_ERR_PROT_LOC_ID04_00 = 0xe + CAN_ERR_PROT_LOC_ID12_05 = 0xf + CAN_ERR_PROT_LOC_ID17_13 = 0x7 + CAN_ERR_PROT_LOC_ID20_18 = 0x6 + CAN_ERR_PROT_LOC_ID28_21 = 0x2 + CAN_ERR_PROT_LOC_IDE = 0x5 + CAN_ERR_PROT_LOC_INTERM = 0x12 + CAN_ERR_PROT_LOC_RES0 = 0x9 + CAN_ERR_PROT_LOC_RES1 = 0xd + CAN_ERR_PROT_LOC_RTR = 0xc + CAN_ERR_PROT_LOC_SOF = 0x3 + CAN_ERR_PROT_LOC_SRTR = 0x4 + CAN_ERR_PROT_LOC_UNSPEC = 0x0 + CAN_ERR_PROT_OVERLOAD = 0x20 + CAN_ERR_PROT_STUFF = 0x4 + CAN_ERR_PROT_TX = 0x80 + CAN_ERR_PROT_UNSPEC = 0x0 + CAN_ERR_RESTARTED = 0x100 + CAN_ERR_TRX = 0x10 + CAN_ERR_TRX_CANH_NO_WIRE = 0x4 + CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 + CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 + CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 + CAN_ERR_TRX_CANL_NO_WIRE = 0x40 + CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 + CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 + CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 + CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 + CAN_ERR_TRX_UNSPEC = 0x0 + CAN_ERR_TX_TIMEOUT = 0x1 + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_J1939 = 0x7 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x8 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_BPF = 0x27 + CAP_CHECKPOINT_RESTORE = 0x28 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x28 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_PERFMON = 0x26 + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_ARGS_SIZE_VER0 = 0x40 + CLONE_ARGS_SIZE_VER1 = 0x50 + CLONE_ARGS_SIZE_VER2 = 0x58 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_CLEAR_SIGHAND = 0x100000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_INTO_CGROUP = 0x200000000 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWTIME = 0x80 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PIDFD = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CODA_SUPER_MAGIC = 0x73757245 + CR0 = 0x0 + CRAMFS_MAGIC = 0x28cd3d45 + CRTSCTS = 0x80000000 + CRYPTO_MAX_NAME = 0x40 + CRYPTO_MSG_MAX = 0x15 + CRYPTO_NR_MSGTYPES = 0x6 + CRYPTO_REPORT_MAXSIZE = 0x160 + CS5 = 0x0 + CSIGNAL = 0xff + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSUSP = 0x1a + DAXFS_MAGIC = 0x64646178 + DEBUGFS_MAGIC = 0x64626720 + DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d + DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 + DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" + DEVLINK_GENL_NAME = "devlink" + DEVLINK_GENL_VERSION = 0x1 + DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 + DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 + DEVMEM_MAGIC = 0x454d444d + DEVPTS_SUPER_MAGIC = 0x1cd1 + DMA_BUF_MAGIC = 0x444d4142 + DM_ACTIVE_PRESENT_FLAG = 0x20 + DM_BUFFER_FULL_FLAG = 0x100 + DM_CONTROL_NODE = "control" + DM_DATA_OUT_FLAG = 0x10000 + DM_DEFERRED_REMOVE = 0x20000 + DM_DEV_ARM_POLL = 0xc138fd10 + DM_DEV_CREATE = 0xc138fd03 + DM_DEV_REMOVE = 0xc138fd04 + DM_DEV_RENAME = 0xc138fd05 + DM_DEV_SET_GEOMETRY = 0xc138fd0f + DM_DEV_STATUS = 0xc138fd07 + DM_DEV_SUSPEND = 0xc138fd06 + DM_DEV_WAIT = 0xc138fd08 + DM_DIR = "mapper" + DM_GET_TARGET_VERSION = 0xc138fd11 + DM_INACTIVE_PRESENT_FLAG = 0x40 + DM_INTERNAL_SUSPEND_FLAG = 0x40000 + DM_IOCTL = 0xfd + DM_LIST_DEVICES = 0xc138fd02 + DM_LIST_VERSIONS = 0xc138fd0d + DM_MAX_TYPE_NAME = 0x10 + DM_NAME_LEN = 0x80 + DM_NOFLUSH_FLAG = 0x800 + DM_PERSISTENT_DEV_FLAG = 0x8 + DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 + DM_READONLY_FLAG = 0x1 + DM_REMOVE_ALL = 0xc138fd01 + DM_SECURE_DATA_FLAG = 0x8000 + DM_SKIP_BDGET_FLAG = 0x200 + DM_SKIP_LOCKFS_FLAG = 0x400 + DM_STATUS_TABLE_FLAG = 0x10 + DM_SUSPEND_FLAG = 0x2 + DM_TABLE_CLEAR = 0xc138fd0a + DM_TABLE_DEPS = 0xc138fd0b + DM_TABLE_LOAD = 0xc138fd09 + DM_TABLE_STATUS = 0xc138fd0c + DM_TARGET_MSG = 0xc138fd0e + DM_UEVENT_GENERATED_FLAG = 0x2000 + DM_UUID_FLAG = 0x4000 + DM_UUID_LEN = 0x81 + DM_VERSION = 0xc138fd00 + DM_VERSION_EXTRA = "-ioctl (2020-10-01)" + DM_VERSION_MAJOR = 0x4 + DM_VERSION_MINOR = 0x2b + DM_VERSION_PATCHLEVEL = 0x0 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFD_SEMAPHORE = 0x1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x414a53 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + ETHER_FLOW = 0x12 + ETHTOOL_BUSINFO_LEN = 0x20 + ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FEC_AUTO = 0x2 + ETHTOOL_FEC_BASER = 0x10 + ETHTOOL_FEC_LLRS = 0x20 + ETHTOOL_FEC_NONE = 0x1 + 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 + ETHTOOL_F_COMPAT = 0x4 + ETHTOOL_F_UNSUPPORTED = 0x1 + ETHTOOL_F_WISH = 0x2 + ETHTOOL_GCHANNELS = 0x3c + ETHTOOL_GCOALESCE = 0xe + ETHTOOL_GDRVINFO = 0x3 + ETHTOOL_GEEE = 0x44 + ETHTOOL_GEEPROM = 0xb + ETHTOOL_GENL_NAME = "ethtool" + ETHTOOL_GENL_VERSION = 0x1 + ETHTOOL_GET_DUMP_DATA = 0x40 + ETHTOOL_GET_DUMP_FLAG = 0x3f + ETHTOOL_GET_TS_INFO = 0x41 + ETHTOOL_GFEATURES = 0x3a + ETHTOOL_GFECPARAM = 0x50 + ETHTOOL_GFLAGS = 0x25 + ETHTOOL_GGRO = 0x2b + ETHTOOL_GGSO = 0x23 + ETHTOOL_GLINK = 0xa + ETHTOOL_GLINKSETTINGS = 0x4c + ETHTOOL_GMODULEEEPROM = 0x43 + ETHTOOL_GMODULEINFO = 0x42 + ETHTOOL_GMSGLVL = 0x7 + ETHTOOL_GPAUSEPARAM = 0x12 + ETHTOOL_GPERMADDR = 0x20 + ETHTOOL_GPFLAGS = 0x27 + ETHTOOL_GPHYSTATS = 0x4a + ETHTOOL_GREGS = 0x4 + ETHTOOL_GRINGPARAM = 0x10 + ETHTOOL_GRSSH = 0x46 + ETHTOOL_GRXCLSRLALL = 0x30 + ETHTOOL_GRXCLSRLCNT = 0x2e + ETHTOOL_GRXCLSRULE = 0x2f + ETHTOOL_GRXCSUM = 0x14 + ETHTOOL_GRXFH = 0x29 + ETHTOOL_GRXFHINDIR = 0x38 + ETHTOOL_GRXNTUPLE = 0x36 + ETHTOOL_GRXRINGS = 0x2d + ETHTOOL_GSET = 0x1 + ETHTOOL_GSG = 0x18 + ETHTOOL_GSSET_INFO = 0x37 + ETHTOOL_GSTATS = 0x1d + ETHTOOL_GSTRINGS = 0x1b + ETHTOOL_GTSO = 0x1e + ETHTOOL_GTUNABLE = 0x48 + ETHTOOL_GTXCSUM = 0x16 + ETHTOOL_GUFO = 0x21 + ETHTOOL_GWOL = 0x5 + ETHTOOL_MCGRP_MONITOR_NAME = "monitor" + ETHTOOL_NWAY_RST = 0x9 + ETHTOOL_PERQUEUE = 0x4b + ETHTOOL_PHYS_ID = 0x1c + ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff + ETHTOOL_PHY_EDPD_DISABLE = 0x0 + ETHTOOL_PHY_EDPD_NO_TX = 0xfffe + ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff + ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 + ETHTOOL_PHY_GTUNABLE = 0x4e + ETHTOOL_PHY_STUNABLE = 0x4f + ETHTOOL_RESET = 0x34 + ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 + ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 + ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff + ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 + ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 + ETHTOOL_SCHANNELS = 0x3d + ETHTOOL_SCOALESCE = 0xf + ETHTOOL_SEEE = 0x45 + ETHTOOL_SEEPROM = 0xc + ETHTOOL_SET_DUMP = 0x3e + ETHTOOL_SFEATURES = 0x3b + ETHTOOL_SFECPARAM = 0x51 + ETHTOOL_SFLAGS = 0x26 + ETHTOOL_SGRO = 0x2c + ETHTOOL_SGSO = 0x24 + ETHTOOL_SLINKSETTINGS = 0x4d + ETHTOOL_SMSGLVL = 0x8 + ETHTOOL_SPAUSEPARAM = 0x13 + ETHTOOL_SPFLAGS = 0x28 + ETHTOOL_SRINGPARAM = 0x11 + ETHTOOL_SRSSH = 0x47 + ETHTOOL_SRXCLSRLDEL = 0x31 + ETHTOOL_SRXCLSRLINS = 0x32 + ETHTOOL_SRXCSUM = 0x15 + ETHTOOL_SRXFH = 0x2a + ETHTOOL_SRXFHINDIR = 0x39 + ETHTOOL_SRXNTUPLE = 0x35 + ETHTOOL_SSET = 0x2 + ETHTOOL_SSG = 0x19 + ETHTOOL_STSO = 0x1f + ETHTOOL_STUNABLE = 0x49 + ETHTOOL_STXCSUM = 0x17 + ETHTOOL_SUFO = 0x22 + ETHTOOL_SWOL = 0x6 + ETHTOOL_TEST = 0x1a + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_DSA_8021Q = 0xdadb + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LLDP = 0x88cc + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MRP = 0x88e3 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXABYTE_ENABLE_NEST = 0xf0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 + FALLOC_FL_COLLAPSE_RANGE = 0x8 + FALLOC_FL_INSERT_RANGE = 0x20 + FALLOC_FL_KEEP_SIZE = 0x1 + FALLOC_FL_NO_HIDE_STALE = 0x4 + FALLOC_FL_PUNCH_HOLE = 0x2 + FALLOC_FL_UNSHARE_RANGE = 0x40 + FALLOC_FL_ZERO_RANGE = 0x10 + FANOTIFY_METADATA_VERSION = 0x3 + FAN_ACCESS = 0x1 + FAN_ACCESS_PERM = 0x20000 + FAN_ALLOW = 0x1 + FAN_ALL_CLASS_BITS = 0xc + FAN_ALL_EVENTS = 0x3b + FAN_ALL_INIT_FLAGS = 0x3f + FAN_ALL_MARK_FLAGS = 0xff + FAN_ALL_OUTGOING_EVENTS = 0x3403b + FAN_ALL_PERM_EVENTS = 0x30000 + FAN_ATTRIB = 0x4 + FAN_AUDIT = 0x10 + FAN_CLASS_CONTENT = 0x4 + FAN_CLASS_NOTIF = 0x0 + FAN_CLASS_PRE_CONTENT = 0x8 + FAN_CLOEXEC = 0x1 + FAN_CLOSE = 0x18 + FAN_CLOSE_NOWRITE = 0x10 + FAN_CLOSE_WRITE = 0x8 + FAN_CREATE = 0x100 + FAN_DELETE = 0x200 + FAN_DELETE_SELF = 0x400 + FAN_DENY = 0x2 + FAN_ENABLE_AUDIT = 0x40 + FAN_EVENT_INFO_TYPE_DFID = 0x3 + FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 + FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_METADATA_LEN = 0x18 + FAN_EVENT_ON_CHILD = 0x8000000 + FAN_MARK_ADD = 0x1 + FAN_MARK_DONT_FOLLOW = 0x4 + FAN_MARK_FILESYSTEM = 0x100 + FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORED_MASK = 0x20 + FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_INODE = 0x0 + FAN_MARK_MOUNT = 0x10 + FAN_MARK_ONLYDIR = 0x8 + FAN_MARK_REMOVE = 0x2 + FAN_MODIFY = 0x2 + FAN_MOVE = 0xc0 + FAN_MOVED_FROM = 0x40 + FAN_MOVED_TO = 0x80 + FAN_MOVE_SELF = 0x800 + FAN_NOFD = -0x1 + FAN_NONBLOCK = 0x2 + FAN_ONDIR = 0x40000000 + FAN_OPEN = 0x20 + FAN_OPEN_EXEC = 0x1000 + FAN_OPEN_EXEC_PERM = 0x40000 + FAN_OPEN_PERM = 0x10000 + FAN_Q_OVERFLOW = 0x4000 + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 + FAN_REPORT_TID = 0x100 + FAN_UNLIMITED_MARKS = 0x20 + FAN_UNLIMITED_QUEUE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FIDEDUPERANGE = 0xc0189436 + FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 + FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" + FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 + FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 + FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 + FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 + FSCRYPT_KEY_STATUS_ABSENT = 0x1 + FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 + FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 + FSCRYPT_KEY_STATUS_PRESENT = 0x2 + FSCRYPT_MAX_KEY_SIZE = 0x40 + FSCRYPT_MODE_ADIANTUM = 0x9 + FSCRYPT_MODE_AES_128_CBC = 0x5 + FSCRYPT_MODE_AES_128_CTS = 0x6 + FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_XTS = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 + FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 + FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 + FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 + FSCRYPT_POLICY_FLAGS_VALID = 0x1f + FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 + FSCRYPT_POLICY_V1 = 0x0 + FSCRYPT_POLICY_V2 = 0x2 + FS_ENCRYPTION_MODE_ADIANTUM = 0x9 + FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 + FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 + FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 + FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 + FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 + FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 + FS_ENCRYPTION_MODE_INVALID = 0x0 + FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 + FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 + FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 + FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a + FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 + FS_IOC_MEASURE_VERITY = 0xc0046686 + FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 + FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 + FS_KEY_DESCRIPTOR_SIZE = 0x8 + FS_KEY_DESC_PREFIX = "fscrypt:" + FS_KEY_DESC_PREFIX_SIZE = 0x8 + FS_MAX_KEY_SIZE = 0x40 + FS_POLICY_FLAGS_PAD_16 = 0x2 + FS_POLICY_FLAGS_PAD_32 = 0x3 + FS_POLICY_FLAGS_PAD_4 = 0x0 + FS_POLICY_FLAGS_PAD_8 = 0x1 + FS_POLICY_FLAGS_PAD_MASK = 0x3 + FS_POLICY_FLAGS_VALID = 0x1f + FS_VERITY_FL = 0x100000 + FS_VERITY_HASH_ALG_SHA256 = 0x1 + FS_VERITY_HASH_ALG_SHA512 = 0x2 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + GENL_ADMIN_PERM = 0x1 + GENL_CMD_CAP_DO = 0x2 + GENL_CMD_CAP_DUMP = 0x4 + GENL_CMD_CAP_HASPOL = 0x8 + GENL_HDRLEN = 0x4 + GENL_ID_CTRL = 0x10 + GENL_ID_PMCRAID = 0x12 + GENL_ID_VFS_DQUOT = 0x11 + GENL_MAX_ID = 0x3ff + GENL_MIN_ID = 0x10 + GENL_NAMSIZ = 0x10 + GENL_START_ALLOC = 0x13 + GENL_UNS_ADMIN_PERM = 0x10 + GRND_INSECURE = 0x4 + GRND_NONBLOCK = 0x1 + GRND_RANDOM = 0x2 + HDIO_DRIVE_CMD = 0x31f + HDIO_DRIVE_CMD_AEB = 0x31e + HDIO_DRIVE_CMD_HDR_SIZE = 0x4 + HDIO_DRIVE_HOB_HDR_SIZE = 0x8 + HDIO_DRIVE_RESET = 0x31c + HDIO_DRIVE_TASK = 0x31e + HDIO_DRIVE_TASKFILE = 0x31d + HDIO_DRIVE_TASK_HDR_SIZE = 0x8 + HDIO_GETGEO = 0x301 + HDIO_GET_32BIT = 0x309 + HDIO_GET_ACOUSTIC = 0x30f + HDIO_GET_ADDRESS = 0x310 + HDIO_GET_BUSSTATE = 0x31a + HDIO_GET_DMA = 0x30b + HDIO_GET_IDENTITY = 0x30d + HDIO_GET_KEEPSETTINGS = 0x308 + HDIO_GET_MULTCOUNT = 0x304 + HDIO_GET_NICE = 0x30c + HDIO_GET_NOWERR = 0x30a + HDIO_GET_QDMA = 0x305 + HDIO_GET_UNMASKINTR = 0x302 + HDIO_GET_WCACHE = 0x30e + HDIO_OBSOLETE_IDENTITY = 0x307 + HDIO_SCAN_HWIF = 0x328 + HDIO_SET_32BIT = 0x324 + HDIO_SET_ACOUSTIC = 0x32c + HDIO_SET_ADDRESS = 0x32f + HDIO_SET_BUSSTATE = 0x32d + HDIO_SET_DMA = 0x326 + HDIO_SET_KEEPSETTINGS = 0x323 + HDIO_SET_MULTCOUNT = 0x321 + HDIO_SET_NICE = 0x329 + HDIO_SET_NOWERR = 0x325 + HDIO_SET_PIO_MODE = 0x327 + HDIO_SET_QDMA = 0x32e + HDIO_SET_UNMASKINTR = 0x322 + HDIO_SET_WCACHE = 0x32b + HDIO_SET_XFER = 0x306 + HDIO_TRISTATE_HWIF = 0x31b + HDIO_UNREGISTER_HWIF = 0x32a + HOSTFS_SUPER_MAGIC = 0xc0ffee + HPFS_SUPER_MAGIC = 0xf995e849 + HUGETLBFS_MAGIC = 0x958458f6 + IBSHIFT = 0x10 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xa + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MASK_CREATE = 0x10000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERNET = 0x8f + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_L2TP = 0x73 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MPTCP = 0x106 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FLOW = 0x11 + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_ALL = 0x1d + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_ROUTER_ALERT_ISOLATE = 0x1e + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_USER_FLOW = 0xe + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_USER_FLOW = 0xd + IP_XFRM_POLICY = 0x11 + ISOFS_SUPER_MAGIC = 0x9660 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + JFFS2_SUPER_MAGIC = 0x72b6 + KEXEC_ARCH_386 = 0x30000 + KEXEC_ARCH_68K = 0x40000 + KEXEC_ARCH_AARCH64 = 0xb70000 + KEXEC_ARCH_ARM = 0x280000 + KEXEC_ARCH_DEFAULT = 0x0 + KEXEC_ARCH_IA_64 = 0x320000 + KEXEC_ARCH_MASK = 0xffff0000 + KEXEC_ARCH_MIPS = 0x80000 + KEXEC_ARCH_MIPS_LE = 0xa0000 + KEXEC_ARCH_PARISC = 0xf0000 + KEXEC_ARCH_PPC = 0x140000 + KEXEC_ARCH_PPC64 = 0x150000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 + KEXEC_ON_CRASH = 0x1 + KEXEC_PRESERVE_CONTEXT = 0x2 + KEXEC_SEGMENT_MAX = 0x10 + KEYCTL_ASSUME_AUTHORITY = 0x10 + KEYCTL_CAPABILITIES = 0x1f + KEYCTL_CAPS0_BIG_KEY = 0x10 + KEYCTL_CAPS0_CAPABILITIES = 0x1 + KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 + KEYCTL_CAPS0_INVALIDATE = 0x20 + KEYCTL_CAPS0_MOVE = 0x80 + KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 + KEYCTL_CAPS0_PUBLIC_KEY = 0x8 + KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 + KEYCTL_CAPS1_NOTIFICATIONS = 0x4 + KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 + KEYCTL_CAPS1_NS_KEY_TAG = 0x2 + KEYCTL_CHOWN = 0x4 + KEYCTL_CLEAR = 0x7 + KEYCTL_DESCRIBE = 0x6 + KEYCTL_DH_COMPUTE = 0x17 + KEYCTL_GET_KEYRING_ID = 0x0 + KEYCTL_GET_PERSISTENT = 0x16 + KEYCTL_GET_SECURITY = 0x11 + KEYCTL_INSTANTIATE = 0xc + KEYCTL_INSTANTIATE_IOV = 0x14 + KEYCTL_INVALIDATE = 0x15 + KEYCTL_JOIN_SESSION_KEYRING = 0x1 + KEYCTL_LINK = 0x8 + KEYCTL_MOVE = 0x1e + KEYCTL_MOVE_EXCL = 0x1 + KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c + KEYCTL_READ = 0xb + KEYCTL_REJECT = 0x13 + KEYCTL_RESTRICT_KEYRING = 0x1d + KEYCTL_REVOKE = 0x3 + KEYCTL_SEARCH = 0xa + KEYCTL_SESSION_TO_PARENT = 0x12 + KEYCTL_SETPERM = 0x5 + KEYCTL_SET_REQKEY_KEYRING = 0xe + KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 + KEYCTL_UNLINK = 0x9 + KEYCTL_UPDATE = 0x2 + KEYCTL_WATCH_KEY = 0x20 + KEY_REQKEY_DEFL_DEFAULT = 0x0 + KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 + KEY_REQKEY_DEFL_NO_CHANGE = -0x1 + KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 + KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 + KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 + KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 + KEY_REQKEY_DEFL_USER_KEYRING = 0x4 + KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 + KEY_SPEC_GROUP_KEYRING = -0x6 + KEY_SPEC_PROCESS_KEYRING = -0x2 + KEY_SPEC_REQKEY_AUTH_KEY = -0x7 + KEY_SPEC_REQUESTOR_KEYRING = -0x8 + KEY_SPEC_SESSION_KEYRING = -0x3 + KEY_SPEC_THREAD_KEYRING = -0x1 + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + LOOP_CLR_FD = 0x4c01 + LOOP_CTL_ADD = 0x4c80 + LOOP_CTL_GET_FREE = 0x4c82 + LOOP_CTL_REMOVE = 0x4c81 + LOOP_GET_STATUS = 0x4c03 + LOOP_GET_STATUS64 = 0x4c05 + LOOP_SET_BLOCK_SIZE = 0x4c09 + LOOP_SET_CAPACITY = 0x4c07 + LOOP_SET_DIRECT_IO = 0x4c08 + LOOP_SET_FD = 0x4c00 + LOOP_SET_STATUS = 0x4c02 + LOOP_SET_STATUS64 = 0x4c04 + LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 + LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc + LO_KEY_SIZE = 0x20 + LO_NAME_SIZE = 0x40 + LWTUNNEL_IP6_MAX = 0x8 + LWTUNNEL_IP_MAX = 0x8 + LWTUNNEL_IP_OPTS_MAX = 0x3 + LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 + LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 + LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 + MADV_COLD = 0x14 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0x15 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x0 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x2a + MCAST_JOIN_SOURCE_GROUP = 0x2e + MCAST_LEAVE_GROUP = 0x2d + MCAST_LEAVE_SOURCE_GROUP = 0x2f + MCAST_MSFILTER = 0x30 + MCAST_UNBLOCK_SOURCE = 0x2c + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0x3f + MFD_HUGE_SHIFT = 0x1a + MINIX2_SUPER_MAGIC = 0x2468 + MINIX2_SUPER_MAGIC2 = 0x2478 + MINIX3_SUPER_MAGIC = 0x4d5a + MINIX_SUPER_MAGIC = 0x137f + MINIX_SUPER_MAGIC2 = 0x138f + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MSDOS_SUPER_MAGIC = 0x4d44 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_BORN = 0x20000000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOREMOTELOCK = 0x8000000 + MS_NOSEC = 0x10000000 + MS_NOSUID = 0x2 + MS_NOSYMFOLLOW = 0x100 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SUBMOUNT = 0x4000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + MS_VERBOSE = 0x8000 + MTD_INODE_FS_MAGIC = 0x11307854 + NAME_MAX = 0xff + NCP_SUPER_MAGIC = 0x564c + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NETNSA_MAX = 0x5 + NETNSA_NSID_NOT_ASSIGNED = -0x1 + NFNETLINK_V0 = 0x0 + NFNLGRP_ACCT_QUOTA = 0x8 + NFNLGRP_CONNTRACK_DESTROY = 0x3 + NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 + NFNLGRP_CONNTRACK_EXP_NEW = 0x4 + NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 + NFNLGRP_CONNTRACK_NEW = 0x1 + NFNLGRP_CONNTRACK_UPDATE = 0x2 + NFNLGRP_MAX = 0x9 + NFNLGRP_NFTABLES = 0x7 + NFNLGRP_NFTRACE = 0x9 + NFNLGRP_NONE = 0x0 + NFNL_BATCH_MAX = 0x1 + NFNL_MSG_BATCH_BEGIN = 0x10 + NFNL_MSG_BATCH_END = 0x11 + NFNL_NFA_NEST = 0x8000 + NFNL_SUBSYS_ACCT = 0x7 + NFNL_SUBSYS_COUNT = 0xc + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_IPSET = 0x6 + NFNL_SUBSYS_NFTABLES = 0xa + NFNL_SUBSYS_NFT_COMPAT = 0xb + NFNL_SUBSYS_NONE = 0x0 + NFNL_SUBSYS_OSF = 0x5 + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CAPPED = 0x100 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NSFS_MAGIC = 0x6e736673 + OCFS2_SUPER_MAGIC = 0x7461636f + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLRET = 0x20 + ONOCR = 0x10 + OPENPROM_SUPER_MAGIC = 0x9fa1 + OPOST = 0x1 + OVERLAYFS_SUPER_MAGIC = 0x794c7630 + O_ACCMODE = 0x3 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PERF_ATTR_SIZE_VER0 = 0x40 + PERF_ATTR_SIZE_VER1 = 0x48 + PERF_ATTR_SIZE_VER2 = 0x50 + PERF_ATTR_SIZE_VER3 = 0x60 + PERF_ATTR_SIZE_VER4 = 0x68 + PERF_ATTR_SIZE_VER5 = 0x70 + PERF_ATTR_SIZE_VER6 = 0x78 + PERF_AUX_FLAG_COLLISION = 0x8 + PERF_AUX_FLAG_OVERWRITE = 0x2 + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_MAX_CONTEXTS_PER_STACK = 0x8 + PERF_MAX_STACK_DEPTH = 0x7f + PERF_MEM_LOCK_LOCKED = 0x2 + PERF_MEM_LOCK_NA = 0x1 + PERF_MEM_LOCK_SHIFT = 0x18 + PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd + PERF_MEM_LVLNUM_SHIFT = 0x21 + PERF_MEM_LVL_HIT = 0x2 + PERF_MEM_LVL_IO = 0x1000 + PERF_MEM_LVL_L1 = 0x8 + PERF_MEM_LVL_L2 = 0x20 + PERF_MEM_LVL_L3 = 0x40 + PERF_MEM_LVL_LFB = 0x10 + PERF_MEM_LVL_LOC_RAM = 0x80 + PERF_MEM_LVL_MISS = 0x4 + PERF_MEM_LVL_NA = 0x1 + PERF_MEM_LVL_REM_CCE1 = 0x400 + PERF_MEM_LVL_REM_CCE2 = 0x800 + PERF_MEM_LVL_REM_RAM1 = 0x100 + PERF_MEM_LVL_REM_RAM2 = 0x200 + PERF_MEM_LVL_SHIFT = 0x5 + PERF_MEM_LVL_UNC = 0x2000 + PERF_MEM_OP_EXEC = 0x10 + PERF_MEM_OP_LOAD = 0x2 + PERF_MEM_OP_NA = 0x1 + PERF_MEM_OP_PFETCH = 0x8 + PERF_MEM_OP_SHIFT = 0x0 + PERF_MEM_OP_STORE = 0x4 + PERF_MEM_REMOTE_REMOTE = 0x1 + PERF_MEM_REMOTE_SHIFT = 0x25 + PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_SHIFT = 0x26 + PERF_MEM_SNOOP_HIT = 0x4 + PERF_MEM_SNOOP_HITM = 0x10 + PERF_MEM_SNOOP_MISS = 0x8 + PERF_MEM_SNOOP_NA = 0x1 + PERF_MEM_SNOOP_NONE = 0x2 + PERF_MEM_SNOOP_SHIFT = 0x13 + PERF_MEM_TLB_HIT = 0x2 + PERF_MEM_TLB_L1 = 0x8 + PERF_MEM_TLB_L2 = 0x10 + PERF_MEM_TLB_MISS = 0x4 + PERF_MEM_TLB_NA = 0x1 + PERF_MEM_TLB_OS = 0x40 + PERF_MEM_TLB_SHIFT = 0x1a + PERF_MEM_TLB_WK = 0x20 + PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 + PERF_RECORD_MISC_COMM_EXEC = 0x2000 + PERF_RECORD_MISC_CPUMODE_MASK = 0x7 + PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 + PERF_RECORD_MISC_EXACT_IP = 0x4000 + PERF_RECORD_MISC_EXT_RESERVED = 0x8000 + PERF_RECORD_MISC_FORK_EXEC = 0x2000 + PERF_RECORD_MISC_GUEST_KERNEL = 0x4 + PERF_RECORD_MISC_GUEST_USER = 0x5 + PERF_RECORD_MISC_HYPERVISOR = 0x3 + PERF_RECORD_MISC_KERNEL = 0x1 + PERF_RECORD_MISC_MMAP_DATA = 0x2000 + PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 + PERF_RECORD_MISC_SWITCH_OUT = 0x2000 + PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 + PERF_RECORD_MISC_USER = 0x2 + PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 + PIPEFS_MAGIC = 0x50495045 + PPC_CMM_MAGIC = 0xc7571590 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_IO_FLUSHER = 0x3a + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_MTE_TAG_MASK = 0x7fff8 + PR_MTE_TAG_SHIFT = 0x3 + PR_MTE_TCF_ASYNC = 0x4 + PR_MTE_TCF_MASK = 0x6 + PR_MTE_TCF_NONE = 0x0 + PR_MTE_TCF_SHIFT = 0x1 + PR_MTE_TCF_SYNC = 0x2 + PR_PAC_APDAKEY = 0x4 + PR_PAC_APDBKEY = 0x8 + PR_PAC_APGAKEY = 0x10 + PR_PAC_APIAKEY = 0x1 + PR_PAC_APIBKEY = 0x2 + PR_PAC_RESET_KEYS = 0x36 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_IO_FLUSHER = 0x39 + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_TAGGED_ADDR_CTRL = 0x37 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SPEC_DISABLE = 0x4 + PR_SPEC_DISABLE_NOEXEC = 0x10 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_TAGGED_ADDR_ENABLE = 0x1 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 + PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSCALL_INFO_ENTRY = 0x1 + PTRACE_SYSCALL_INFO_EXIT = 0x2 + PTRACE_SYSCALL_INFO_NONE = 0x0 + PTRACE_SYSCALL_INFO_SECCOMP = 0x3 + PTRACE_TRACEME = 0x0 + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RDTGROUP_SUPER_MAGIC = 0x7655821 + REISERFS_SUPER_MAGIC = 0x52654973 + RENAME_EXCHANGE = 0x2 + RENAME_NOREPLACE = 0x1 + RENAME_WHITEOUT = 0x4 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_LOCKS = 0xa + RLIMIT_MSGQUEUE = 0xc + RLIMIT_NICE = 0xd + RLIMIT_RTPRIO = 0xe + RLIMIT_RTTIME = 0xf + RLIMIT_SIGPENDING = 0xb + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1e + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_IRQF = 0x80 + RTC_MAX_FREQ = 0x2000 + RTC_PF = 0x40 + RTC_UF = 0x10 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELVLAN = 0x71 + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_OFFLOAD = 0x4000 + RTM_F_PREFIX = 0x800 + RTM_F_TRAP = 0x8000 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETLINKPROP = 0x6e + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNEXTHOP = 0x6a + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETVLAN = 0x72 + RTM_MAX = 0x73 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNSID = 0x58 + RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x19 + RTM_NR_MSGTYPES = 0x64 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x19 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KEEPALIVED = 0x12 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + RWF_APPEND = 0x10 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 + RWF_NOWAIT = 0x8 + RWF_SUPPORTED = 0x1f + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECURITYFS_MAGIC = 0x73636673 + SELINUX_MAGIC = 0xf97cff8c + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGETLINKNAME = 0x89e0 + SIOCGETNODEID = 0x89e1 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPPPCSTATS = 0x89f2 + SIOCGPPPSTATS = 0x89f0 + SIOCGPPPVER = 0x89f1 + SIOCGRARP = 0x8961 + SIOCGSKNS = 0x894c + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCGSTAMPNS_OLD = 0x8907 + SIOCGSTAMP_OLD = 0x8906 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb + SMART_DISABLE = 0xd9 + SMART_ENABLE = 0xd8 + SMART_HCYL_PASS = 0xc2 + SMART_IMMEDIATE_OFFLINE = 0xd4 + SMART_LCYL_PASS = 0x4f + SMART_READ_LOG_SECTOR = 0xd5 + SMART_READ_THRESHOLDS = 0xd1 + SMART_READ_VALUES = 0xd0 + SMART_SAVE = 0xd3 + SMART_STATUS = 0xda + SMART_WRITE_LOG_SECTOR = 0xd6 + SMART_WRITE_THRESHOLDS = 0xd7 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_DCCP = 0x6 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_CAN_RAW = 0x65 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x1000 + SO_ATTACH_FILTER = 0x1a + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 + SO_EE_CODE_TXTIME_MISSED = 0x2 + SO_EE_CODE_ZEROCOPY_COPIED = 0x1 + SO_EE_ORIGIN_ICMP = 0x2 + SO_EE_ORIGIN_ICMP6 = 0x3 + SO_EE_ORIGIN_LOCAL = 0x1 + SO_EE_ORIGIN_NONE = 0x0 + SO_EE_ORIGIN_TIMESTAMPING = 0x4 + SO_EE_ORIGIN_TXSTATUS = 0x4 + SO_EE_ORIGIN_TXTIME = 0x6 + SO_EE_ORIGIN_ZEROCOPY = 0x5 + SO_EE_RFC4884_FLAG_INVALID = 0x1 + SO_GET_FILTER = 0x1a + SO_NO_CHECK = 0xb + SO_PEERNAME = 0x1c + SO_PRIORITY = 0xc + SO_TIMESTAMP = 0x1d + SO_TIMESTAMP_OLD = 0x1d + SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 + SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 + SO_VM_SOCKETS_BUFFER_SIZE = 0x0 + SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 + SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 + SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 + SO_VM_SOCKETS_TRUSTED = 0x5 + SPLICE_F_GIFT = 0x8 + SPLICE_F_MORE = 0x4 + SPLICE_F_MOVE = 0x1 + SPLICE_F_NONBLOCK = 0x2 + SQUASHFS_MAGIC = 0x73717368 + STACK_END_MAGIC = 0x57ac6e9d + STATX_ALL = 0xfff + STATX_ATIME = 0x20 + STATX_ATTR_APPEND = 0x20 + STATX_ATTR_AUTOMOUNT = 0x1000 + STATX_ATTR_COMPRESSED = 0x4 + STATX_ATTR_DAX = 0x200000 + STATX_ATTR_ENCRYPTED = 0x800 + STATX_ATTR_IMMUTABLE = 0x10 + STATX_ATTR_MOUNT_ROOT = 0x2000 + STATX_ATTR_NODUMP = 0x40 + STATX_ATTR_VERITY = 0x100000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 + SYNC_FILE_RANGE_WRITE = 0x2 + SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 + SYSFS_MAGIC = 0x62656572 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TASKSTATS_CMD_ATTR_MAX = 0x4 + TASKSTATS_CMD_MAX = 0x2 + TASKSTATS_GENL_NAME = "TASKSTATS" + TASKSTATS_GENL_VERSION = 0x1 + TASKSTATS_TYPE_MAX = 0x6 + TASKSTATS_VERSION = 0xa + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CM_INQ = 0x24 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_INQ = 0x24 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OFF = 0x0 + TCP_REPAIR_OFF_NO_WP = -0x1 + TCP_REPAIR_ON = 0x1 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_TX_DELAY = 0x25 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_V4_FLOW = 0x1 + TCP_V6_FLOW = 0x5 + TCP_WINDOW_CLAMP = 0xa + TCP_ZEROCOPY_RECEIVE = 0x23 + TFD_TIMER_ABSTIME = 0x1 + TFD_TIMER_CANCEL_ON_SET = 0x2 + TIMER_ABSTIME = 0x1 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RTS = 0x4 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIPC_ADDR_ID = 0x3 + TIPC_ADDR_MCAST = 0x1 + TIPC_ADDR_NAME = 0x2 + TIPC_ADDR_NAMESEQ = 0x1 + TIPC_AEAD_ALG_NAME = 0x20 + TIPC_AEAD_KEYLEN_MAX = 0x24 + TIPC_AEAD_KEYLEN_MIN = 0x14 + TIPC_AEAD_KEY_SIZE_MAX = 0x48 + TIPC_CFG_SRV = 0x0 + TIPC_CLUSTER_BITS = 0xc + TIPC_CLUSTER_MASK = 0xfff000 + TIPC_CLUSTER_OFFSET = 0xc + TIPC_CLUSTER_SIZE = 0xfff + TIPC_CONN_SHUTDOWN = 0x5 + TIPC_CONN_TIMEOUT = 0x82 + TIPC_CRITICAL_IMPORTANCE = 0x3 + TIPC_DESTNAME = 0x3 + TIPC_DEST_DROPPABLE = 0x81 + TIPC_ERRINFO = 0x1 + TIPC_ERR_NO_NAME = 0x1 + TIPC_ERR_NO_NODE = 0x3 + TIPC_ERR_NO_PORT = 0x2 + TIPC_ERR_OVERLOAD = 0x4 + TIPC_GROUP_JOIN = 0x87 + TIPC_GROUP_LEAVE = 0x88 + TIPC_GROUP_LOOPBACK = 0x1 + TIPC_GROUP_MEMBER_EVTS = 0x2 + TIPC_HIGH_IMPORTANCE = 0x2 + TIPC_IMPORTANCE = 0x7f + TIPC_LINK_STATE = 0x2 + TIPC_LOW_IMPORTANCE = 0x0 + TIPC_MAX_BEARER_NAME = 0x20 + TIPC_MAX_IF_NAME = 0x10 + TIPC_MAX_LINK_NAME = 0x44 + TIPC_MAX_MEDIA_NAME = 0x10 + TIPC_MAX_USER_MSG_SIZE = 0x101d0 + TIPC_MCAST_BROADCAST = 0x85 + TIPC_MCAST_REPLICAST = 0x86 + TIPC_MEDIUM_IMPORTANCE = 0x1 + TIPC_NODEID_LEN = 0x10 + TIPC_NODELAY = 0x8a + TIPC_NODE_BITS = 0xc + TIPC_NODE_MASK = 0xfff + TIPC_NODE_OFFSET = 0x0 + TIPC_NODE_RECVQ_DEPTH = 0x83 + TIPC_NODE_SIZE = 0xfff + TIPC_NODE_STATE = 0x0 + TIPC_OK = 0x0 + TIPC_PUBLISHED = 0x1 + TIPC_REKEYING_NOW = 0xffffffff + TIPC_RESERVED_TYPES = 0x40 + TIPC_RETDATA = 0x2 + TIPC_SERVICE_ADDR = 0x2 + TIPC_SERVICE_RANGE = 0x1 + TIPC_SOCKET_ADDR = 0x3 + TIPC_SOCK_RECVQ_DEPTH = 0x84 + TIPC_SOCK_RECVQ_USED = 0x89 + TIPC_SRC_DROPPABLE = 0x80 + TIPC_SUBSCR_TIMEOUT = 0x3 + TIPC_SUB_CANCEL = 0x4 + TIPC_SUB_PORTS = 0x1 + TIPC_SUB_SERVICE = 0x2 + TIPC_TOP_SRV = 0x1 + TIPC_WAIT_FOREVER = 0xffffffff + TIPC_WITHDRAWN = 0x2 + TIPC_ZONE_BITS = 0x8 + TIPC_ZONE_CLUSTER_MASK = 0xfffff000 + TIPC_ZONE_MASK = 0xff000000 + TIPC_ZONE_OFFSET = 0x18 + TIPC_ZONE_SCOPE = 0x1 + TIPC_ZONE_SIZE = 0xff + TMPFS_MAGIC = 0x1021994 + TPACKET_ALIGNMENT = 0x10 + TPACKET_HDRLEN = 0x34 + TP_STATUS_AVAILABLE = 0x0 + TP_STATUS_BLK_TMO = 0x20 + TP_STATUS_COPY = 0x2 + TP_STATUS_CSUMNOTREADY = 0x8 + TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_KERNEL = 0x0 + TP_STATUS_LOSING = 0x4 + TP_STATUS_SENDING = 0x2 + TP_STATUS_SEND_REQUEST = 0x1 + TP_STATUS_TS_RAW_HARDWARE = 0x80000000 + TP_STATUS_TS_SOFTWARE = 0x20000000 + TP_STATUS_TS_SYS_HARDWARE = 0x40000000 + TP_STATUS_USER = 0x1 + TP_STATUS_VLAN_TPID_VALID = 0x40 + TP_STATUS_VLAN_VALID = 0x10 + TP_STATUS_WRONG_FORMAT = 0x4 + TRACEFS_MAGIC = 0x74726163 + TS_COMM_LEN = 0x20 + UDF_SUPER_MAGIC = 0x15013346 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_LOCAL = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VM_SOCKETS_INVALID_VERSION = 0xffffffff + VQUIT = 0x1 + VT0 = 0x0 + WAKE_MAGIC = 0x20 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WDIOC_SETPRETIMEOUT = 0xc0045708 + WDIOC_SETTIMEOUT = 0xc0045706 + WDIOF_ALARMONLY = 0x400 + WDIOF_CARDRESET = 0x20 + WDIOF_EXTERN1 = 0x4 + WDIOF_EXTERN2 = 0x8 + WDIOF_FANFAULT = 0x2 + WDIOF_KEEPALIVEPING = 0x8000 + WDIOF_MAGICCLOSE = 0x100 + WDIOF_OVERHEAT = 0x1 + WDIOF_POWEROVER = 0x40 + WDIOF_POWERUNDER = 0x10 + WDIOF_PRETIMEOUT = 0x200 + WDIOF_SETTIMEOUT = 0x80 + WDIOF_UNKNOWN = -0x1 + WDIOS_DISABLECARD = 0x1 + WDIOS_ENABLECARD = 0x2 + WDIOS_TEMPPANIC = 0x4 + WDIOS_UNKNOWN = -0x1 + WEXITED = 0x4 + WIN_ACKMEDIACHANGE = 0xdb + WIN_CHECKPOWERMODE1 = 0xe5 + WIN_CHECKPOWERMODE2 = 0x98 + WIN_DEVICE_RESET = 0x8 + WIN_DIAGNOSE = 0x90 + WIN_DOORLOCK = 0xde + WIN_DOORUNLOCK = 0xdf + WIN_DOWNLOAD_MICROCODE = 0x92 + WIN_FLUSH_CACHE = 0xe7 + WIN_FLUSH_CACHE_EXT = 0xea + WIN_FORMAT = 0x50 + WIN_GETMEDIASTATUS = 0xda + WIN_IDENTIFY = 0xec + WIN_IDENTIFY_DMA = 0xee + WIN_IDLEIMMEDIATE = 0xe1 + WIN_INIT = 0x60 + WIN_MEDIAEJECT = 0xed + WIN_MULTREAD = 0xc4 + WIN_MULTREAD_EXT = 0x29 + WIN_MULTWRITE = 0xc5 + WIN_MULTWRITE_EXT = 0x39 + WIN_NOP = 0x0 + WIN_PACKETCMD = 0xa0 + WIN_PIDENTIFY = 0xa1 + WIN_POSTBOOT = 0xdc + WIN_PREBOOT = 0xdd + WIN_QUEUED_SERVICE = 0xa2 + WIN_READ = 0x20 + WIN_READDMA = 0xc8 + WIN_READDMA_EXT = 0x25 + WIN_READDMA_ONCE = 0xc9 + WIN_READDMA_QUEUED = 0xc7 + WIN_READDMA_QUEUED_EXT = 0x26 + WIN_READ_BUFFER = 0xe4 + WIN_READ_EXT = 0x24 + WIN_READ_LONG = 0x22 + WIN_READ_LONG_ONCE = 0x23 + WIN_READ_NATIVE_MAX = 0xf8 + WIN_READ_NATIVE_MAX_EXT = 0x27 + WIN_READ_ONCE = 0x21 + WIN_RECAL = 0x10 + WIN_RESTORE = 0x10 + WIN_SECURITY_DISABLE = 0xf6 + WIN_SECURITY_ERASE_PREPARE = 0xf3 + WIN_SECURITY_ERASE_UNIT = 0xf4 + WIN_SECURITY_FREEZE_LOCK = 0xf5 + WIN_SECURITY_SET_PASS = 0xf1 + WIN_SECURITY_UNLOCK = 0xf2 + WIN_SEEK = 0x70 + WIN_SETFEATURES = 0xef + WIN_SETIDLE1 = 0xe3 + WIN_SETIDLE2 = 0x97 + WIN_SETMULT = 0xc6 + WIN_SET_MAX = 0xf9 + WIN_SET_MAX_EXT = 0x37 + WIN_SLEEPNOW1 = 0xe6 + WIN_SLEEPNOW2 = 0x99 + WIN_SMART = 0xb0 + WIN_SPECIFY = 0x91 + WIN_SRST = 0x8 + WIN_STANDBY = 0xe2 + WIN_STANDBY2 = 0x96 + WIN_STANDBYNOW1 = 0xe0 + WIN_STANDBYNOW2 = 0x94 + WIN_VERIFY = 0x40 + WIN_VERIFY_EXT = 0x42 + WIN_VERIFY_ONCE = 0x41 + WIN_WRITE = 0x30 + WIN_WRITEDMA = 0xca + WIN_WRITEDMA_EXT = 0x35 + WIN_WRITEDMA_ONCE = 0xcb + WIN_WRITEDMA_QUEUED = 0xcc + WIN_WRITEDMA_QUEUED_EXT = 0x36 + WIN_WRITE_BUFFER = 0xe8 + WIN_WRITE_EXT = 0x34 + WIN_WRITE_LONG = 0x32 + WIN_WRITE_LONG_ONCE = 0x33 + WIN_WRITE_ONCE = 0x31 + WIN_WRITE_SAME = 0xe9 + WIN_WRITE_VERIFY = 0x3c + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + XDP_COPY = 0x2 + XDP_FLAGS_DRV_MODE = 0x4 + XDP_FLAGS_HW_MODE = 0x8 + XDP_FLAGS_MASK = 0x1f + XDP_FLAGS_MODES = 0xe + XDP_FLAGS_REPLACE = 0x10 + XDP_FLAGS_SKB_MODE = 0x2 + XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 + XDP_MMAP_OFFSETS = 0x1 + XDP_OPTIONS = 0x8 + XDP_OPTIONS_ZEROCOPY = 0x1 + XDP_PACKET_HEADROOM = 0x100 + XDP_PGOFF_RX_RING = 0x0 + XDP_PGOFF_TX_RING = 0x80000000 + XDP_RING_NEED_WAKEUP = 0x1 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + 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_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + Z3FOLD_MAGIC = 0x33 + ZONEFS_MAGIC = 0x5a4f4653 + ZSMALLOC_MAGIC = 0x58295829 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EAGAIN = syscall.Errno(0xb) + EBADF = syscall.Errno(0x9) + EBUSY = syscall.Errno(0x10) + ECHILD = syscall.Errno(0xa) + EDOM = syscall.Errno(0x21) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISDIR = syscall.Errno(0x15) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + ENFILE = syscall.Errno(0x17) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOMEM = syscall.Errno(0xc) + ENOSPC = syscall.Errno(0x1c) + ENOTBLK = syscall.Errno(0xf) + ENOTDIR = syscall.Errno(0x14) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EPERM = syscall.Errno(0x1) + EPIPE = syscall.Errno(0x20) + ERANGE = syscall.Errno(0x22) + EROFS = syscall.Errno(0x1e) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ETXTBSY = syscall.Errno(0x1a) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) +) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go new file mode 100644 index 0000000..336e0b3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -0,0 +1,790 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x8000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + X86_FXSR_MAGIC = 0x0 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go new file mode 100644 index 0000000..961507e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -0,0 +1,790 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go new file mode 100644 index 0000000..a65576d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -0,0 +1,796 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x20000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETFDPIC = 0x1f + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 + PTRACE_GETFPREGS = 0xe + PTRACE_GETHBPREGS = 0x1d + PTRACE_GETVFPREGS = 0x1b + PTRACE_GETWMMXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x16 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETCRUNCHREGS = 0x1a + PTRACE_SETFPREGS = 0xf + PTRACE_SETHBPREGS = 0x1e + PTRACE_SETVFPREGS = 0x1c + PTRACE_SETWMMXREGS = 0x13 + PTRACE_SET_SYSCALL = 0x17 + PT_DATA_ADDR = 0x10004 + PT_TEXT_ADDR = 0x10000 + PT_TEXT_END_ADDR = 0x10008 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go new file mode 100644 index 0000000..cf075ca --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -0,0 +1,786 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 + EXTRA_MAGIC = 0x45585401 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPSIMD_MAGIC = 0x46508001 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PROT_BTI = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_PEEKMTETAGS = 0x21 + PTRACE_POKEMTETAGS = 0x22 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + SVE_MAGIC = 0x53564501 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go new file mode 100644 index 0000000..efe90de --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -0,0 +1,797 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go new file mode 100644 index 0000000..8b0e891 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -0,0 +1,797 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go new file mode 100644 index 0000000..e9430cd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -0,0 +1,797 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64le,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go new file mode 100644 index 0000000..61e4f5d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -0,0 +1,797 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mipsle,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go new file mode 100644 index 0000000..973ad93 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -0,0 +1,853 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go new file mode 100644 index 0000000..70a7406 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -0,0 +1,853 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64le,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go new file mode 100644 index 0000000..b1bf799 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -0,0 +1,777 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build riscv64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go new file mode 100644 index 0000000..7053d10 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -0,0 +1,850 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build s390x,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_GET_LAST_BREAK = 0x5006 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_AREA = 0x5003 + PTRACE_PEEKTEXT_AREA = 0x5002 + PTRACE_PEEKUSR_AREA = 0x5000 + PTRACE_PEEK_SYSTEM_CALL = 0x5007 + PTRACE_POKEDATA_AREA = 0x5005 + PTRACE_POKETEXT_AREA = 0x5004 + PTRACE_POKEUSR_AREA = 0x5001 + PTRACE_POKE_SYSTEM_CALL = 0x5008 + PTRACE_PROT = 0x15 + PTRACE_SINGLEBLOCK = 0xc + PTRACE_TE_ABORT_RAND = 0x5011 + PT_ACR0 = 0x90 + PT_ACR1 = 0x94 + PT_ACR10 = 0xb8 + PT_ACR11 = 0xbc + PT_ACR12 = 0xc0 + PT_ACR13 = 0xc4 + PT_ACR14 = 0xc8 + PT_ACR15 = 0xcc + PT_ACR2 = 0x98 + PT_ACR3 = 0x9c + PT_ACR4 = 0xa0 + PT_ACR5 = 0xa4 + PT_ACR6 = 0xa8 + PT_ACR7 = 0xac + PT_ACR8 = 0xb0 + PT_ACR9 = 0xb4 + PT_CR_10 = 0x168 + PT_CR_11 = 0x170 + PT_CR_9 = 0x160 + PT_ENDREGS = 0x1af + PT_FPC = 0xd8 + PT_FPR0 = 0xe0 + PT_FPR1 = 0xe8 + PT_FPR10 = 0x130 + PT_FPR11 = 0x138 + PT_FPR12 = 0x140 + PT_FPR13 = 0x148 + PT_FPR14 = 0x150 + PT_FPR15 = 0x158 + PT_FPR2 = 0xf0 + PT_FPR3 = 0xf8 + PT_FPR4 = 0x100 + PT_FPR5 = 0x108 + PT_FPR6 = 0x110 + PT_FPR7 = 0x118 + PT_FPR8 = 0x120 + PT_FPR9 = 0x128 + PT_GPR0 = 0x10 + PT_GPR1 = 0x18 + PT_GPR10 = 0x60 + PT_GPR11 = 0x68 + PT_GPR12 = 0x70 + PT_GPR13 = 0x78 + PT_GPR14 = 0x80 + PT_GPR15 = 0x88 + PT_GPR2 = 0x20 + PT_GPR3 = 0x28 + PT_GPR4 = 0x30 + PT_GPR5 = 0x38 + PT_GPR6 = 0x40 + PT_GPR7 = 0x48 + PT_GPR8 = 0x50 + PT_GPR9 = 0x58 + PT_IEEE_IP = 0x1a8 + PT_LASTOFF = 0x1a8 + PT_ORIGGPR2 = 0xd0 + PT_PSWADDR = 0x8 + PT_PSWMASK = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go new file mode 100644 index 0000000..137cfe7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -0,0 +1,847 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build sparc64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 + EPOLL_CLOEXEC = 0x400000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_RENAME = 0x20 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS64 = 0x16 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETREGS64 = 0x17 + PTRACE_SPARC_DETACH = 0xb + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x6 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x400000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BINDTOIFINDEX = 0x41 + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUSY_POLL = 0x30 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x33 + SO_INCOMING_NAPI_ID = 0x3a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_MEMINFO = 0x39 + SO_NOFCS = 0x27 + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVTIMEO = 0x2000 + SO_RCVTIMEO_NEW = 0x44 + SO_RCVTIMEO_OLD = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_SNDTIMEO_NEW = 0x45 + SO_SNDTIMEO_OLD = 0x4000 + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPING_NEW = 0x43 + SO_TIMESTAMPING_OLD = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TIMESTAMPNS_NEW = 0x42 + SO_TIMESTAMPNS_OLD = 0x21 + SO_TIMESTAMP_NEW = 0x46 + SO_TXTIME = 0x3f + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x25 + SO_ZEROCOPY = 0x3e + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TFD_CLOEXEC = 0x400000 + TFD_NONBLOCK = 0x4000 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285443 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGPTPEER = 0x20007489 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSISO7816 = 0xc0285444 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + __TIOCFLUSH = 0x80047410 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EADV = syscall.Errno(0x53) + EAFNOSUPPORT = syscall.Errno(0x2f) + EALREADY = syscall.Errno(0x25) + EBADE = syscall.Errno(0x66) + EBADFD = syscall.Errno(0x5d) + EBADMSG = syscall.Errno(0x4c) + EBADR = syscall.Errno(0x67) + EBADRQC = syscall.Errno(0x6a) + EBADSLT = syscall.Errno(0x6b) + EBFONT = syscall.Errno(0x6d) + ECANCELED = syscall.Errno(0x7f) + ECHRNG = syscall.Errno(0x5e) + ECOMM = syscall.Errno(0x55) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0x4e) + EDEADLOCK = syscall.Errno(0x6c) + EDESTADDRREQ = syscall.Errno(0x27) + EDOTDOT = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EHWPOISON = syscall.Errno(0x87) + EIDRM = syscall.Errno(0x4d) + EILSEQ = syscall.Errno(0x7a) + EINPROGRESS = syscall.Errno(0x24) + EISCONN = syscall.Errno(0x38) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x81) + EKEYREJECTED = syscall.Errno(0x83) + EKEYREVOKED = syscall.Errno(0x82) + EL2HLT = syscall.Errno(0x65) + EL2NSYNC = syscall.Errno(0x5f) + EL3HLT = syscall.Errno(0x60) + EL3RST = syscall.Errno(0x61) + ELIBACC = syscall.Errno(0x72) + ELIBBAD = syscall.Errno(0x70) + ELIBEXEC = syscall.Errno(0x6e) + ELIBMAX = syscall.Errno(0x7b) + ELIBSCN = syscall.Errno(0x7c) + ELNRNG = syscall.Errno(0x62) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x7e) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x57) + ENAMETOOLONG = syscall.Errno(0x3f) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENOANO = syscall.Errno(0x69) + ENOBUFS = syscall.Errno(0x37) + ENOCSI = syscall.Errno(0x64) + ENODATA = syscall.Errno(0x6f) + ENOKEY = syscall.Errno(0x80) + ENOLCK = syscall.Errno(0x4f) + ENOLINK = syscall.Errno(0x52) + ENOMEDIUM = syscall.Errno(0x7d) + ENOMSG = syscall.Errno(0x4b) + ENONET = syscall.Errno(0x50) + ENOPKG = syscall.Errno(0x71) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSR = syscall.Errno(0x4a) + ENOSTR = syscall.Errno(0x48) + ENOSYS = syscall.Errno(0x5a) + ENOTCONN = syscall.Errno(0x39) + ENOTEMPTY = syscall.Errno(0x42) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x85) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTUNIQ = syscall.Errno(0x73) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x5c) + EOWNERDEAD = syscall.Errno(0x84) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPROCLIM = syscall.Errno(0x43) + EPROTO = syscall.Errno(0x56) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EREMCHG = syscall.Errno(0x59) + EREMOTE = syscall.Errno(0x47) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x74) + ERFKILL = syscall.Errno(0x86) + ERREMOTE = syscall.Errno(0x51) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESRMNT = syscall.Errno(0x54) + ESTALE = syscall.Errno(0x46) + ESTRPIPE = syscall.Errno(0x5b) + ETIME = syscall.Errno(0x49) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x63) + EUSERS = syscall.Errno(0x44) + EXFULL = syscall.Errno(0x68) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x17) + SIGLOST = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x17) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1d) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "cannot assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "transport endpoint is already connected"}, + {57, "ENOTCONN", "transport endpoint is not connected"}, + {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {59, "ETOOMANYREFS", "too many references: cannot splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale file handle"}, + {71, "EREMOTE", "object is remote"}, + {72, "ENOSTR", "device not a stream"}, + {73, "ETIME", "timer expired"}, + {74, "ENOSR", "out of streams resources"}, + {75, "ENOMSG", "no message of desired type"}, + {76, "EBADMSG", "bad message"}, + {77, "EIDRM", "identifier removed"}, + {78, "EDEADLK", "resource deadlock avoided"}, + {79, "ENOLCK", "no locks available"}, + {80, "ENONET", "machine is not on the network"}, + {81, "ERREMOTE", "unknown error 81"}, + {82, "ENOLINK", "link has been severed"}, + {83, "EADV", "advertise error"}, + {84, "ESRMNT", "srmount error"}, + {85, "ECOMM", "communication error on send"}, + {86, "EPROTO", "protocol error"}, + {87, "EMULTIHOP", "multihop attempted"}, + {88, "EDOTDOT", "RFS specific error"}, + {89, "EREMCHG", "remote address changed"}, + {90, "ENOSYS", "function not implemented"}, + {91, "ESTRPIPE", "streams pipe error"}, + {92, "EOVERFLOW", "value too large for defined data type"}, + {93, "EBADFD", "file descriptor in bad state"}, + {94, "ECHRNG", "channel number out of range"}, + {95, "EL2NSYNC", "level 2 not synchronized"}, + {96, "EL3HLT", "level 3 halted"}, + {97, "EL3RST", "level 3 reset"}, + {98, "ELNRNG", "link number out of range"}, + {99, "EUNATCH", "protocol driver not attached"}, + {100, "ENOCSI", "no CSI structure available"}, + {101, "EL2HLT", "level 2 halted"}, + {102, "EBADE", "invalid exchange"}, + {103, "EBADR", "invalid request descriptor"}, + {104, "EXFULL", "exchange full"}, + {105, "ENOANO", "no anode"}, + {106, "EBADRQC", "invalid request code"}, + {107, "EBADSLT", "invalid slot"}, + {108, "EDEADLOCK", "file locking deadlock error"}, + {109, "EBFONT", "bad font file format"}, + {110, "ELIBEXEC", "cannot exec a shared library directly"}, + {111, "ENODATA", "no data available"}, + {112, "ELIBBAD", "accessing a corrupted shared library"}, + {113, "ENOPKG", "package not installed"}, + {114, "ELIBACC", "can not access a needed shared library"}, + {115, "ENOTUNIQ", "name not unique on network"}, + {116, "ERESTART", "interrupted system call should be restarted"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {123, "ELIBMAX", "attempting to link in too many shared libraries"}, + {124, "ELIBSCN", ".lib section in a.out corrupted"}, + {125, "ENOMEDIUM", "no medium found"}, + {126, "EMEDIUMTYPE", "wrong medium type"}, + {127, "ECANCELED", "operation canceled"}, + {128, "ENOKEY", "required key not available"}, + {129, "EKEYEXPIRED", "key has expired"}, + {130, "EKEYREVOKED", "key has been revoked"}, + {131, "EKEYREJECTED", "key was rejected by service"}, + {132, "EOWNERDEAD", "owner died"}, + {133, "ENOTRECOVERABLE", "state not recoverable"}, + {134, "ERFKILL", "operation not possible due to RF-kill"}, + {135, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGLOST", "power failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go new file mode 100644 index 0000000..20f3a57 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -0,0 +1,1779 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + EN_SW_CTL_INF = 0x1000 + EN_SW_CTL_PREC = 0x300 + EN_SW_CTL_ROUND = 0xc00 + EN_SW_DATACHAIN = 0x80 + EN_SW_DENORM = 0x2 + EN_SW_INVOP = 0x1 + EN_SW_OVERFLOW = 0x8 + EN_SW_PRECLOSS = 0x20 + EN_SW_UNDERFLOW = 0x10 + EN_SW_ZERODIV = 0x4 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go new file mode 100644 index 0000000..90b8fcd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -0,0 +1,1769 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go new file mode 100644 index 0000000..c5c0399 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -0,0 +1,1758 @@ +// mkerrors.sh -marm +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -marm _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PRI_IOFLUSH = 0x7c + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x48087446 + TIOCPTSNAME = 0x48087448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go new file mode 100644 index 0000000..14dd3c1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -0,0 +1,1769 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go new file mode 100644 index 0000000..c865a10 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -0,0 +1,1664 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DIVERT_INIT = 0x2 + IPPROTO_DIVERT_RESP = 0x1 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DIVERTFL = 0x1022 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x6 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_MASK = 0x3ff000 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xb + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTF_ANNOUNCE = 0x4000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x10f808 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_SOURCE = 0x20000 + RTF_STATIC = 0x800 + RTF_TUNNEL = 0x100000 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8218691c + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8054693c + SIOCBRDGADDS = 0x80546941 + SIOCBRDGARL = 0x806e694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8054693d + SIOCBRDGDELS = 0x80546942 + SIOCBRDGFLUSH = 0x80546948 + SIOCBRDGFRL = 0x806e694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGSIFS = 0xc054693c + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0546942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80546955 + SIOCBRDGSIFFLGS = 0x8054693f + SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8218691e + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFADDR = 0xc218691d + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGVH = 0xc02069f6 + SIOCGVNETID = 0xc02069a7 + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFMEDIA = 0xc0206935 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFTIMESLOT = 0x80206985 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSVH = 0xc02069f5 + SIOCSVNETID = 0x802069a6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_NSTATES = 0xb + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x400c745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5b) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ELAST", "not supported"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go new file mode 100644 index 0000000..9db6b2f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -0,0 +1,1774 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MAXID = 0xc + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go new file mode 100644 index 0000000..7072526 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -0,0 +1,1666 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DIVERT_INIT = 0x2 + IPPROTO_DIVERT_RESP = 0x1 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DIVERTFL = 0x1022 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x6 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xb + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTF_ANNOUNCE = 0x4000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x70f808 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8218691c + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8054693c + SIOCBRDGADDS = 0x80546941 + SIOCBRDGARL = 0x806e694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8054693d + SIOCBRDGDELS = 0x80546942 + SIOCBRDGFLUSH = 0x80546948 + SIOCBRDGFRL = 0x806e694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGSIFS = 0xc054693c + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0546942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80546955 + SIOCBRDGSIFFLGS = 0x8054693f + SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8218691e + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFADDR = 0xc218691d + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGVH = 0xc02069f6 + SIOCGVNETID = 0xc02069a7 + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFMEDIA = 0xc0206935 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFTIMESLOT = 0x80206985 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSVH = 0xc02069f5 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_NSTATES = 0xb + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x400c745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5b) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ELAST", "not supported"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go new file mode 100644 index 0000000..ac5efbe --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -0,0 +1,1797 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go new file mode 100644 index 0000000..a74639a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -0,0 +1,1862 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go new file mode 100644 index 0000000..5312c36 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go @@ -0,0 +1,1553 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,solaris + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_802 = 0x12 + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_FILE = 0x1 + AF_GOSIP = 0x16 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1a + AF_INET_OFFLOAD = 0x1e + AF_IPX = 0x17 + AF_KEY = 0x1b + AF_LAT = 0xe + AF_LINK = 0x19 + AF_LOCAL = 0x1 + AF_MAX = 0x20 + AF_NBS = 0x7 + AF_NCA = 0x1c + AF_NIT = 0x11 + AF_NS = 0x6 + AF_OSI = 0x13 + AF_OSINET = 0x15 + AF_PACKET = 0x20 + AF_POLICY = 0x1d + AF_PUP = 0x4 + AF_ROUTE = 0x18 + AF_SNA = 0xb + AF_TRILL = 0x1f + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_X25 = 0x14 + ARPHRD_ARCNET = 0x7 + ARPHRD_ATM = 0x10 + ARPHRD_AX25 = 0x3 + ARPHRD_CHAOS = 0x5 + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_FC = 0x12 + ARPHRD_FRAME = 0xf + ARPHRD_HDLC = 0x11 + ARPHRD_IB = 0x20 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IPATM = 0x13 + ARPHRD_METRICOM = 0x17 + ARPHRD_TUNNEL = 0x1f + B0 = 0x0 + B110 = 0x3 + B115200 = 0x12 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B153600 = 0x13 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B230400 = 0x14 + B2400 = 0xb + B300 = 0x7 + B307200 = 0x15 + B38400 = 0xf + B460800 = 0x16 + B4800 = 0xc + B50 = 0x1 + B57600 = 0x10 + B600 = 0x8 + B75 = 0x2 + B76800 = 0x11 + B921600 = 0x17 + B9600 = 0xd + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = -0x3fefbd89 + BIOCGDLTLIST32 = -0x3ff7bd89 + BIOCGETIF = 0x4020426b + BIOCGETLIF = 0x4078426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGRTIMEOUT32 = 0x4008427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = -0x7ffbbd90 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = -0x3ffbbd9a + BIOCSDLT = -0x7ffbbd8a + BIOCSETF = -0x7fefbd99 + BIOCSETF32 = -0x7ff7bd99 + BIOCSETIF = -0x7fdfbd94 + BIOCSETLIF = -0x7f87bd94 + BIOCSHDRCMPLT = -0x7ffbbd8b + BIOCSRTIMEOUT = -0x7fefbd86 + BIOCSRTIMEOUT32 = -0x7ff7bd86 + BIOCSSEESENT = -0x7ffbbd87 + BIOCSTCPF = -0x7fefbd8e + BIOCSUDPF = -0x7fefbd8d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_HIGHRES = 0x4 + CLOCK_LEVEL = 0xa + CLOCK_MONOTONIC = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x5 + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x3 + CLOCK_THREAD_CPUTIME_ID = 0x2 + CLOCK_VIRTUAL = 0x1 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + CSWTCH = 0x1a + DIOC = 0x6400 + DIOCGETB = 0x6402 + DIOCGETC = 0x6401 + DIOCGETP = 0x6408 + DIOCSETE = 0x6403 + DIOCSETP = 0x6409 + DLT_AIRONET_HEADER = 0x78 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_BACNET_MS_TP = 0xa5 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FDDI = 0xa + DLT_FRELAY = 0x6b + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xa2 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_PPPD = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EMPTY_SET = 0x0 + EMT_CPCOVF = 0x1 + EQUALITY_CHECK = 0x0 + EXTA = 0xe + EXTB = 0xf + FD_CLOEXEC = 0x1 + FD_NFDBITS = 0x40 + FD_SETSIZE = 0x10000 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FIORDCHK = 0x6603 + FLUSHALL = 0x1 + FLUSHDATA = 0x0 + FLUSHO = 0x2000 + F_ALLOCSP = 0xa + F_ALLOCSP64 = 0xa + F_BADFD = 0x2e + F_BLKSIZE = 0x13 + F_BLOCKS = 0x12 + F_CHKFL = 0x8 + F_COMPAT = 0x8 + F_DUP2FD = 0x9 + F_DUP2FD_CLOEXEC = 0x24 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x25 + F_FLOCK = 0x35 + F_FLOCK64 = 0x35 + F_FLOCKW = 0x36 + F_FLOCKW64 = 0x36 + F_FREESP = 0xb + F_FREESP64 = 0xb + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETXFL = 0x2d + F_HASREMOTELOCKS = 0x1a + F_ISSTREAM = 0xd + F_MANDDNY = 0x10 + F_MDACC = 0x20 + F_NODNY = 0x0 + F_NPRIV = 0x10 + F_OFD_GETLK = 0x2f + F_OFD_GETLK64 = 0x2f + F_OFD_SETLK = 0x30 + F_OFD_SETLK64 = 0x30 + F_OFD_SETLKW = 0x31 + F_OFD_SETLKW64 = 0x31 + F_PRIV = 0xf + F_QUOTACTL = 0x11 + F_RDACC = 0x1 + F_RDDNY = 0x1 + F_RDLCK = 0x1 + F_REVOKE = 0x19 + F_RMACC = 0x4 + F_RMDNY = 0x4 + F_RWACC = 0x3 + F_RWDNY = 0x3 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLK64_NBMAND = 0x2a + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETLK_NBMAND = 0x2a + F_SETOWN = 0x18 + F_SHARE = 0x28 + F_SHARE_NBMAND = 0x2b + F_UNLCK = 0x3 + F_UNLKSYS = 0x4 + F_UNSHARE = 0x29 + F_WRACC = 0x2 + F_WRDNY = 0x2 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFF_ADDRCONF = 0x80000 + IFF_ALLMULTI = 0x200 + IFF_ANYCAST = 0x400000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x7f203003b5a + IFF_COS_ENABLED = 0x200000000 + IFF_DEBUG = 0x4 + IFF_DEPRECATED = 0x40000 + IFF_DHCPRUNNING = 0x4000 + IFF_DUPLICATE = 0x4000000000 + IFF_FAILED = 0x10000000 + IFF_FIXEDMTU = 0x1000000000 + IFF_INACTIVE = 0x40000000 + IFF_INTELLIGENT = 0x400 + IFF_IPMP = 0x8000000000 + IFF_IPMP_CANTCHANGE = 0x10000000 + IFF_IPMP_INVALID = 0x1ec200080 + IFF_IPV4 = 0x1000000 + IFF_IPV6 = 0x2000000 + IFF_L3PROTECT = 0x40000000000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x800 + IFF_MULTI_BCAST = 0x1000 + IFF_NOACCEPT = 0x4000000 + IFF_NOARP = 0x80 + IFF_NOFAILOVER = 0x8000000 + IFF_NOLINKLOCAL = 0x20000000000 + IFF_NOLOCAL = 0x20000 + IFF_NONUD = 0x200000 + IFF_NORTEXCH = 0x800000 + IFF_NOTRAILERS = 0x20 + IFF_NOXMIT = 0x10000 + IFF_OFFLINE = 0x80000000 + IFF_POINTOPOINT = 0x10 + IFF_PREFERRED = 0x400000000 + IFF_PRIVATE = 0x8000 + IFF_PROMISC = 0x100 + IFF_ROUTER = 0x100000 + IFF_RUNNING = 0x40 + IFF_STANDBY = 0x20000000 + IFF_TEMPORARY = 0x800000000 + IFF_UNNUMBERED = 0x2000 + IFF_UP = 0x1 + IFF_VIRTUAL = 0x2000000000 + IFF_VRRP = 0x10000000000 + IFF_XRESOLV = 0x100000000 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6TO4 = 0xca + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_IPV4 = 0xc8 + IFT_IPV6 = 0xc9 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_AUTOCONF_MASK = 0xffff0000 + IN_AUTOCONF_NET = 0xa9fe0000 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_CLASSE_NET = 0xffffffff + IN_LOOPBACKNET = 0x7f + IN_PRIVATE12_MASK = 0xfff00000 + IN_PRIVATE12_NET = 0xac100000 + IN_PRIVATE16_MASK = 0xffff0000 + IN_PRIVATE16_NET = 0xc0a80000 + IN_PRIVATE8_MASK = 0xff000000 + IN_PRIVATE8_NET = 0xa000000 + IPPROTO_AH = 0x33 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x4 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_HELLO = 0x3f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_ND = 0x4d + IPPROTO_NONE = 0x3b + IPPROTO_OSPF = 0x59 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_UDP = 0x11 + IPV6_ADD_MEMBERSHIP = 0x9 + IPV6_BOUND_IF = 0x41 + IPV6_CHECKSUM = 0x18 + IPV6_DONTFRAG = 0x21 + IPV6_DROP_MEMBERSHIP = 0xa + IPV6_DSTOPTS = 0xf + IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 + IPV6_FLOWINFO_TCLASS = 0xf00f + IPV6_HOPLIMIT = 0xc + IPV6_HOPOPTS = 0xe + IPV6_JOIN_GROUP = 0x9 + IPV6_LEAVE_GROUP = 0xa + IPV6_MULTICAST_HOPS = 0x7 + IPV6_MULTICAST_IF = 0x6 + IPV6_MULTICAST_LOOP = 0x8 + IPV6_NEXTHOP = 0xd + IPV6_PAD1_OPT = 0x0 + IPV6_PATHMTU = 0x25 + IPV6_PKTINFO = 0xb + IPV6_PREFER_SRC_CGA = 0x20 + IPV6_PREFER_SRC_CGADEFAULT = 0x10 + IPV6_PREFER_SRC_CGAMASK = 0x30 + IPV6_PREFER_SRC_COA = 0x2 + IPV6_PREFER_SRC_DEFAULT = 0x15 + IPV6_PREFER_SRC_HOME = 0x1 + IPV6_PREFER_SRC_MASK = 0x3f + IPV6_PREFER_SRC_MIPDEFAULT = 0x1 + IPV6_PREFER_SRC_MIPMASK = 0x3 + IPV6_PREFER_SRC_NONCGA = 0x10 + IPV6_PREFER_SRC_PUBLIC = 0x4 + IPV6_PREFER_SRC_TMP = 0x8 + IPV6_PREFER_SRC_TMPDEFAULT = 0x4 + IPV6_PREFER_SRC_TMPMASK = 0xc + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x13 + IPV6_RECVHOPOPTS = 0x14 + IPV6_RECVPATHMTU = 0x24 + IPV6_RECVPKTINFO = 0x12 + IPV6_RECVRTHDR = 0x16 + IPV6_RECVRTHDRDSTOPTS = 0x17 + IPV6_RECVTCLASS = 0x19 + IPV6_RTHDR = 0x10 + IPV6_RTHDRDSTOPTS = 0x11 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SEC_OPT = 0x22 + IPV6_SRC_PREFERENCES = 0x23 + IPV6_TCLASS = 0x26 + IPV6_UNICAST_HOPS = 0x5 + IPV6_UNSPEC_SRC = 0x42 + IPV6_USE_MIN_MTU = 0x20 + IPV6_V6ONLY = 0x27 + IP_ADD_MEMBERSHIP = 0x13 + IP_ADD_SOURCE_MEMBERSHIP = 0x17 + IP_BLOCK_SOURCE = 0x15 + IP_BOUND_IF = 0x41 + IP_BROADCAST = 0x106 + IP_BROADCAST_TTL = 0x43 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPINIT_IF = 0x45 + IP_DONTFRAG = 0x1b + IP_DONTROUTE = 0x105 + IP_DROP_MEMBERSHIP = 0x14 + IP_DROP_SOURCE_MEMBERSHIP = 0x18 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x10 + IP_MULTICAST_LOOP = 0x12 + IP_MULTICAST_TTL = 0x11 + IP_NEXTHOP = 0x19 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x9 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVSLLA = 0xa + IP_RECVTTL = 0xb + IP_RETOPTS = 0x8 + IP_REUSEADDR = 0x104 + IP_SEC_OPT = 0x22 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x16 + IP_UNSPEC_SRC = 0x42 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_ACCESS_DEFAULT = 0x6 + MADV_ACCESS_LWP = 0x7 + MADV_ACCESS_MANY = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NORMAL = 0x0 + MADV_PURGE = 0x9 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80 + MAP_ALIGN = 0x200 + MAP_ANON = 0x100 + MAP_ANONYMOUS = 0x100 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_INITDATA = 0x800 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_TEXT = 0x400 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x29 + MCAST_JOIN_SOURCE_GROUP = 0x2d + MCAST_LEAVE_GROUP = 0x2a + MCAST_LEAVE_SOURCE_GROUP = 0x2e + MCAST_UNBLOCK_SOURCE = 0x2c + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CTRUNC = 0x10 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_DUPCTRL = 0x800 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 0x10 + MSG_NOSIGNAL = 0x200 + MSG_NOTIFICATION = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x20 + MSG_WAITALL = 0x40 + MSG_XPG4_2 = 0x8000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_OLDSYNC = 0x0 + MS_SYNC = 0x4 + M_FLUSH = 0x86 + NAME_MAX = 0xff + NEWDEV = 0x1 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x100 + NLDLY = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + OLDDEV = 0x0 + ONBITSMAJOR = 0x7 + ONBITSMINOR = 0x8 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPENFAIL = -0x1 + OPOST = 0x1 + O_ACCMODE = 0x600003 + O_APPEND = 0x8 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DIRECTORY = 0x1000000 + O_DSYNC = 0x40 + O_EXCL = 0x400 + O_EXEC = 0x400000 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x4 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NOLINKS = 0x40000 + O_NONBLOCK = 0x80 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x8000 + O_SEARCH = 0x200000 + O_SIOCGIFCONF = -0x3ff796ec + O_SIOCGLIFCONF = -0x3fef9688 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + O_XATTR = 0x4000 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xfffffffffffffffd + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_NUMBITS = 0x9 + RTA_SRC = 0x100 + RTF_BLACKHOLE = 0x1000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INDIRECT = 0x40000 + RTF_KERNEL = 0x80000 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTIRT = 0x10000 + RTF_PRIVATE = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SETSRC = 0x20000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTF_ZONE = 0x100000 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0xf + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_FREEADDR = 0x10 + RTM_GET = 0x4 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_VERSION = 0x3 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_AWARE = 0x1 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_RIGHTS = 0x1010 + SCM_TIMESTAMP = 0x1013 + SCM_UCRED = 0x1012 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIG2STR_MAX = 0x20 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDRT = -0x7fcf8df6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fdb96e0 + SIOCDELMULTI = -0x7fdf96ce + SIOCDELRT = -0x7fcf8df5 + SIOCDXARP = -0x7fff9658 + SIOCGARP = -0x3fdb96e1 + SIOCGDSTINFO = -0x3fff965c + SIOCGENADDR = -0x3fdf96ab + SIOCGENPSTATS = -0x3fdf96c7 + SIOCGETLSGCNT = -0x3fef8deb + SIOCGETNAME = 0x40107334 + SIOCGETPEER = 0x40107335 + SIOCGETPROP = -0x3fff8f44 + SIOCGETSGCNT = -0x3feb8deb + SIOCGETSYNC = -0x3fdf96d3 + SIOCGETVIFCNT = -0x3feb8dec + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fdf96f3 + SIOCGIFBRDADDR = -0x3fdf96e9 + SIOCGIFCONF = -0x3ff796a4 + SIOCGIFDSTADDR = -0x3fdf96f1 + SIOCGIFFLAGS = -0x3fdf96ef + SIOCGIFHWADDR = -0x3fdf9647 + SIOCGIFINDEX = -0x3fdf96a6 + SIOCGIFMEM = -0x3fdf96ed + SIOCGIFMETRIC = -0x3fdf96e5 + SIOCGIFMTU = -0x3fdf96ea + SIOCGIFMUXID = -0x3fdf96a8 + SIOCGIFNETMASK = -0x3fdf96e7 + SIOCGIFNUM = 0x40046957 + SIOCGIP6ADDRPOLICY = -0x3fff965e + SIOCGIPMSFILTER = -0x3ffb964c + SIOCGLIFADDR = -0x3f87968f + SIOCGLIFBINDING = -0x3f879666 + SIOCGLIFBRDADDR = -0x3f879685 + SIOCGLIFCONF = -0x3fef965b + SIOCGLIFDADSTATE = -0x3f879642 + SIOCGLIFDSTADDR = -0x3f87968d + SIOCGLIFFLAGS = -0x3f87968b + SIOCGLIFGROUPINFO = -0x3f4b9663 + SIOCGLIFGROUPNAME = -0x3f879664 + SIOCGLIFHWADDR = -0x3f879640 + SIOCGLIFINDEX = -0x3f87967b + SIOCGLIFLNKINFO = -0x3f879674 + SIOCGLIFMETRIC = -0x3f879681 + SIOCGLIFMTU = -0x3f879686 + SIOCGLIFMUXID = -0x3f87967d + SIOCGLIFNETMASK = -0x3f879683 + SIOCGLIFNUM = -0x3ff3967e + SIOCGLIFSRCOF = -0x3fef964f + SIOCGLIFSUBNET = -0x3f879676 + SIOCGLIFTOKEN = -0x3f879678 + SIOCGLIFUSESRC = -0x3f879651 + SIOCGLIFZONE = -0x3f879656 + SIOCGLOWAT = 0x40047303 + SIOCGMSFILTER = -0x3ffb964e + SIOCGPGRP = 0x40047309 + SIOCGSTAMP = -0x3fef9646 + SIOCGXARP = -0x3fff9659 + SIOCIFDETACH = -0x7fdf96c8 + SIOCILB = -0x3ffb9645 + SIOCLIFADDIF = -0x3f879691 + SIOCLIFDELND = -0x7f879673 + SIOCLIFGETND = -0x3f879672 + SIOCLIFREMOVEIF = -0x7f879692 + SIOCLIFSETND = -0x7f879671 + SIOCLOWER = -0x7fdf96d7 + SIOCSARP = -0x7fdb96e2 + SIOCSCTPGOPT = -0x3fef9653 + SIOCSCTPPEELOFF = -0x3ffb9652 + SIOCSCTPSOPT = -0x7fef9654 + SIOCSENABLESDP = -0x3ffb9649 + SIOCSETPROP = -0x7ffb8f43 + SIOCSETSYNC = -0x7fdf96d4 + SIOCSHIWAT = -0x7ffb8d00 + SIOCSIFADDR = -0x7fdf96f4 + SIOCSIFBRDADDR = -0x7fdf96e8 + SIOCSIFDSTADDR = -0x7fdf96f2 + SIOCSIFFLAGS = -0x7fdf96f0 + SIOCSIFINDEX = -0x7fdf96a5 + SIOCSIFMEM = -0x7fdf96ee + SIOCSIFMETRIC = -0x7fdf96e4 + SIOCSIFMTU = -0x7fdf96eb + SIOCSIFMUXID = -0x7fdf96a7 + SIOCSIFNAME = -0x7fdf96b7 + SIOCSIFNETMASK = -0x7fdf96e6 + SIOCSIP6ADDRPOLICY = -0x7fff965d + SIOCSIPMSFILTER = -0x7ffb964b + SIOCSLGETREQ = -0x3fdf96b9 + SIOCSLIFADDR = -0x7f879690 + SIOCSLIFBRDADDR = -0x7f879684 + SIOCSLIFDSTADDR = -0x7f87968e + SIOCSLIFFLAGS = -0x7f87968c + SIOCSLIFGROUPNAME = -0x7f879665 + SIOCSLIFINDEX = -0x7f87967a + SIOCSLIFLNKINFO = -0x7f879675 + SIOCSLIFMETRIC = -0x7f879680 + SIOCSLIFMTU = -0x7f879687 + SIOCSLIFMUXID = -0x7f87967c + SIOCSLIFNAME = -0x3f87967f + SIOCSLIFNETMASK = -0x7f879682 + SIOCSLIFPREFIX = -0x3f879641 + SIOCSLIFSUBNET = -0x7f879677 + SIOCSLIFTOKEN = -0x7f879679 + SIOCSLIFUSESRC = -0x7f879650 + SIOCSLIFZONE = -0x7f879655 + SIOCSLOWAT = -0x7ffb8cfe + SIOCSLSTAT = -0x7fdf96b8 + SIOCSMSFILTER = -0x7ffb964d + SIOCSPGRP = -0x7ffb8cf8 + SIOCSPROMISC = -0x7ffb96d0 + SIOCSQPTR = -0x3ffb9648 + SIOCSSDSTATS = -0x3fdf96d2 + SIOCSSESTATS = -0x3fdf96d1 + SIOCSXARP = -0x7fff965a + SIOCTMYADDR = -0x3ff79670 + SIOCTMYSITE = -0x3ff7966e + SIOCTONLINK = -0x3ff7966f + SIOCUPPER = -0x7fdf96d8 + SIOCX25RCV = -0x3fdf96c4 + SIOCX25TBL = -0x3fdf96c3 + SIOCX25XMT = -0x3fdf96c5 + SIOCXPROTO = 0x20007337 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NDELAY = 0x200000 + SOCK_NONBLOCK = 0x100000 + SOCK_RAW = 0x4 + SOCK_RDM = 0x5 + SOCK_SEQPACKET = 0x6 + SOCK_STREAM = 0x2 + SOCK_TYPE_MASK = 0xffff + SOL_FILTER = 0xfffc + SOL_PACKET = 0xfffd + SOL_ROUTE = 0xfffe + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ALL = 0x3f + SO_ALLZONES = 0x1014 + SO_ANON_MLP = 0x100a + SO_ATTACH_FILTER = 0x40000001 + SO_BAND = 0x4000 + SO_BROADCAST = 0x20 + SO_COPYOPT = 0x80000 + SO_DEBUG = 0x1 + SO_DELIM = 0x8000 + SO_DETACH_FILTER = 0x40000002 + SO_DGRAM_ERRIND = 0x200 + SO_DOMAIN = 0x100c + SO_DONTLINGER = -0x81 + SO_DONTROUTE = 0x10 + SO_ERROPT = 0x40000 + SO_ERROR = 0x1007 + SO_EXCLBIND = 0x1015 + SO_HIWAT = 0x10 + SO_ISNTTY = 0x800 + SO_ISTTY = 0x400 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOWAT = 0x20 + SO_MAC_EXEMPT = 0x100b + SO_MAC_IMPLICIT = 0x1016 + SO_MAXBLK = 0x100000 + SO_MAXPSZ = 0x8 + SO_MINPSZ = 0x4 + SO_MREADOFF = 0x80 + SO_MREADON = 0x40 + SO_NDELOFF = 0x200 + SO_NDELON = 0x100 + SO_NODELIM = 0x10000 + SO_OOBINLINE = 0x100 + SO_PROTOTYPE = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVPSH = 0x100d + SO_RCVTIMEO = 0x1006 + SO_READOPT = 0x1 + SO_RECVUCRED = 0x400 + SO_REUSEADDR = 0x4 + SO_SECATTR = 0x1011 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STRHOLD = 0x20000 + SO_TAIL = 0x200000 + SO_TIMESTAMP = 0x1013 + SO_TONSTOP = 0x2000 + SO_TOSTOP = 0x1000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_VRRP = 0x1017 + SO_WROFF = 0x2 + S_ENFMT = 0x400 + S_IAMB = 0x1ff + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFDOOR = 0xd000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFNAM = 0x5000 + S_IFPORT = 0xe000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_INSEM = 0x1 + S_INSHD = 0x2 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_ABORT_THRESHOLD = 0x11 + TCP_ANONPRIVBIND = 0x20 + TCP_CONGESTION = 0x25 + TCP_CONN_ABORT_THRESHOLD = 0x13 + TCP_CONN_NOTIFY_THRESHOLD = 0x12 + TCP_CORK = 0x18 + TCP_EXCLBIND = 0x21 + TCP_INIT_CWND = 0x15 + TCP_KEEPALIVE = 0x8 + TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 + TCP_KEEPALIVE_THRESHOLD = 0x16 + TCP_KEEPCNT = 0x23 + TCP_KEEPIDLE = 0x22 + TCP_KEEPINTVL = 0x24 + TCP_LINGER2 = 0x1c + TCP_MAXSEG = 0x2 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOTIFY_THRESHOLD = 0x10 + TCP_RECVDSTADDR = 0x14 + TCP_RTO_INITIAL = 0x19 + TCP_RTO_MAX = 0x1b + TCP_RTO_MIN = 0x1a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETSF = 0x5410 + TCSETSW = 0x540f + TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOC = 0x5400 + TIOCCBRK = 0x747a + TIOCCDTR = 0x7478 + TIOCCILOOP = 0x746c + TIOCEXCL = 0x740d + TIOCFLUSH = 0x7410 + TIOCGETC = 0x7412 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x7414 + TIOCGPPS = 0x547d + TIOCGPPSEV = 0x547f + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5469 + TIOCGWINSZ = 0x5468 + TIOCHPCL = 0x7402 + TIOCKBOF = 0x5409 + TIOCKBON = 0x5408 + TIOCLBIC = 0x747e + TIOCLBIS = 0x747f + TIOCLGET = 0x747c + TIOCLSET = 0x747d + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMSET = 0x741a + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x7471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7473 + TIOCREMOTE = 0x741e + TIOCSBRK = 0x747b + TIOCSCTTY = 0x7484 + TIOCSDTR = 0x7479 + TIOCSETC = 0x7411 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIGNAL = 0x741f + TIOCSILOOP = 0x746d + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x7415 + TIOCSPPS = 0x547e + TIOCSSOFTCAR = 0x546a + TIOCSTART = 0x746e + TIOCSTI = 0x7417 + TIOCSTOP = 0x746f + TIOCSWINSZ = 0x5467 + TOSTOP = 0x100 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCEOF = 0x8 + VCEOL = 0x9 + VDISCARD = 0xd + VDSUSP = 0xb + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VERASE2 = 0x11 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTATUS = 0x10 + VSTOP = 0x9 + VSUSP = 0xa + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WCONTFLG = 0xffff + WCONTINUED = 0x8 + WCOREFLG = 0x80 + WEXITED = 0x1 + WNOHANG = 0x40 + WNOWAIT = 0x80 + WOPTMASK = 0xcf + WRAP = 0x20000 + WSIGMASK = 0x7f + WSTOPFLG = 0x7f + WSTOPPED = 0x4 + WTRAPPED = 0x2 + WUNTRACED = 0x4 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADF = syscall.Errno(0x9) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x39) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x2f) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x31) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINPROGRESS = syscall.Errno(0x96) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x85) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOCKUNMAPPED = syscall.Errno(0x48) + ELOOP = syscall.Errno(0x5a) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENFILE = syscall.Errno(0x17) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTACTIVE = syscall.Errno(0x49) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x86) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTRECOVERABLE = syscall.Errno(0x3b) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x30) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x50) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0x3a) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPIPE = syscall.Errno(0x20) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + ERANGE = syscall.Errno(0x22) + EREMCHG = syscall.Errno(0x52) + EREMOTE = syscall.Errno(0x42) + ERESTART = syscall.Errno(0x5b) + EROFS = syscall.Errno(0x1e) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCANCEL = syscall.Signal(0x24) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGFREEZE = syscall.Signal(0x22) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x29) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x16) + SIGIOT = syscall.Signal(0x6) + SIGJVM1 = syscall.Signal(0x27) + SIGJVM2 = syscall.Signal(0x28) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x25) + SIGLWP = syscall.Signal(0x21) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHAW = syscall.Signal(0x23) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWAITING = syscall.Signal(0x20) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) + SIGXRES = syscall.Signal(0x26) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock situation detected/avoided"}, + {46, "ENOLCK", "no record locks available"}, + {47, "ECANCELED", "operation canceled"}, + {48, "ENOTSUP", "operation not supported"}, + {49, "EDQUOT", "disc quota exceeded"}, + {50, "EBADE", "bad exchange descriptor"}, + {51, "EBADR", "bad request descriptor"}, + {52, "EXFULL", "message tables full"}, + {53, "ENOANO", "anode table overflow"}, + {54, "EBADRQC", "bad request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock"}, + {57, "EBFONT", "bad font file format"}, + {58, "EOWNERDEAD", "owner of the lock died"}, + {59, "ENOTRECOVERABLE", "lock is not recoverable"}, + {60, "ENOSTR", "not a stream device"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of stream resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, + {73, "ENOTACTIVE", "facility is not active"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "not a data message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, + {87, "ELIBEXEC", "can not exec a shared library directly"}, + {88, "EILSEQ", "illegal byte sequence"}, + {89, "ENOSYS", "operation not applicable"}, + {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, + {91, "ERESTART", "error 91"}, + {92, "ESTRPIPE", "error 92"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "option not supported by protocol"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection because of reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {143, "ESHUTDOWN", "cannot send after socket shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale NFS file handle"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal Instruction"}, + {5, "SIGTRAP", "trace/Breakpoint Trap"}, + {6, "SIGABRT", "abort"}, + {7, "SIGEMT", "emulation Trap"}, + {8, "SIGFPE", "arithmetic Exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus Error"}, + {11, "SIGSEGV", "segmentation Fault"}, + {12, "SIGSYS", "bad System Call"}, + {13, "SIGPIPE", "broken Pipe"}, + {14, "SIGALRM", "alarm Clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user Signal 1"}, + {17, "SIGUSR2", "user Signal 2"}, + {18, "SIGCHLD", "child Status Changed"}, + {19, "SIGPWR", "power-Fail/Restart"}, + {20, "SIGWINCH", "window Size Change"}, + {21, "SIGURG", "urgent Socket Condition"}, + {22, "SIGIO", "pollable Event"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped (user)"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual Timer Expired"}, + {29, "SIGPROF", "profiling Timer Expired"}, + {30, "SIGXCPU", "cpu Limit Exceeded"}, + {31, "SIGXFSZ", "file Size Limit Exceeded"}, + {32, "SIGWAITING", "no runnable lwp"}, + {33, "SIGLWP", "inter-lwp signal"}, + {34, "SIGFREEZE", "checkpoint Freeze"}, + {35, "SIGTHAW", "checkpoint Thaw"}, + {36, "SIGCANCEL", "thread Cancellation"}, + {37, "SIGLOST", "resource Lost"}, + {38, "SIGXRES", "resource Control Exceeded"}, + {39, "SIGJVM1", "reserved for JVM 1"}, + {40, "SIGJVM2", "reserved for JVM 2"}, + {41, "SIGINFO", "information Request"}, +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go new file mode 100644 index 0000000..89c5920 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -0,0 +1,41 @@ +// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. + +// +build linux +// +build arm arm64 + +package unix + +import "unsafe" + +// PtraceRegsArm is the registers used by arm binaries. +type PtraceRegsArm struct { + Uregs [18]uint32 +} + +// PtraceGetRegsArm fetches the registers used by arm binaries. +func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsArm sets the registers used by arm binaries. +func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} + +// PtraceRegsArm64 is the registers used by arm64 binaries. +type PtraceRegsArm64 struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsArm64 sets the registers used by arm64 binaries. +func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go new file mode 100644 index 0000000..6cb6d68 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go @@ -0,0 +1,17 @@ +// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. + +package unix + +import "unsafe" + +// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} + return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} + +// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. +func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} + return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go new file mode 100644 index 0000000..24b841e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -0,0 +1,50 @@ +// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. + +// +build linux +// +build mips mips64 + +package unix + +import "unsafe" + +// PtraceRegsMips is the registers used by mips binaries. +type PtraceRegsMips struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips fetches the registers used by mips binaries. +func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsMips sets the registers used by mips binaries. +func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} + +// PtraceRegsMips64 is the registers used by mips64 binaries. +type PtraceRegsMips64 struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. +func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsMips64 sets the registers used by mips64 binaries. +func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go new file mode 100644 index 0000000..47b0489 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -0,0 +1,50 @@ +// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. + +// +build linux +// +build mipsle mips64le + +package unix + +import "unsafe" + +// PtraceRegsMipsle is the registers used by mipsle binaries. +type PtraceRegsMipsle struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. +func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsMipsle sets the registers used by mipsle binaries. +func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} + +// PtraceRegsMips64le is the registers used by mips64le binaries. +type PtraceRegsMips64le struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. +func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsMips64le sets the registers used by mips64le binaries. +func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go new file mode 100644 index 0000000..ea5d9cb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -0,0 +1,80 @@ +// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. + +// +build linux +// +build 386 amd64 + +package unix + +import "unsafe" + +// PtraceRegs386 is the registers used by 386 binaries. +type PtraceRegs386 struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +// PtraceGetRegs386 fetches the registers used by 386 binaries. +func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegs386 sets the registers used by 386 binaries. +func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} + +// PtraceRegsAmd64 is the registers used by amd64 binaries. +type PtraceRegsAmd64 struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. +func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { + return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) +} + +// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. +func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { + return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go new file mode 100644 index 0000000..ed657ff --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -0,0 +1,1484 @@ +// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build aix,ppc + +package unix + +/* +#include +#include +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int fsync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +int lstat(uintptr_t, uintptr_t); +int pause(); +int pread64(int, uintptr_t, size_t, long long); +int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int setregid(int, int); +int setreuid(int, int); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +int getpeername(int, uintptr_t, uintptr_t); +int getsockname(int, uintptr_t, uintptr_t); +int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); +int munmap(uintptr_t, uintptr_t); +int madvise(uintptr_t, size_t, int); +int mprotect(uintptr_t, size_t, int); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +int poll(uintptr_t, int, int); +int gettimeofday(uintptr_t, uintptr_t); +int time(uintptr_t); +int utime(uintptr_t, uintptr_t); +unsigned long long getsystemcfg(int); +int umount(uintptr_t); +int getrlimit64(int, uintptr_t); +int setrlimit64(int, uintptr_t); +long long lseek64(int, long long, int); +uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + wpid = Pid_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + r = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + val = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.acct(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chdir(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chroot(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, er := C.close(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, er := C.dup(C.int(oldfd)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + C.exit(C.int(code)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + r0, er := C.fchdir(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + r0, er := C.fchmod(C.int(fd), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + r0, er := C.fdatasync(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + r0, er := C.fsync(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, er := C.getpgid(C.int(pid)) + pgid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pid int) { + r0, _ := C.getpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := C.getpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := C.getppid() + ppid = 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) { + r0, er := C.getpriority(C.int(which), C.int(who)) + prio = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, er := C.getsid(C.int(pid)) + sid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + r0, er := C.kill(C.int(pid), C.int(sig)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + var _p2 int + _p2 = len(buf) + r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) + _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) + r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + r0, er := C.setpgid(C.int(pid), C.int(pgid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, er := C.setsid() + pid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + r0, er := C.setuid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + r0, er := C.setgid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + C.sync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) + ticks = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := C.umask(C.int(mask)) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlink(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + r0, er := C.dup2(C.int(oldfd), C.int(newfd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_t) (err error) { + r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + r0, er := C.ftruncate(C.int(fd), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := C.getegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := C.geteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := C.getgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := C.getuid() + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + r0, er := C.listen(C.int(s), C.int(n)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + r0, er := C.pause() + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + 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) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + r0, er := C.setregid(C.int(rgid), C.int(egid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + r0, er := C.setreuid(C.int(ruid), C.int(euid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + r0, er := C.shutdown(C.int(fd), C.int(how)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) + n = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statptr *Stat_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + nn = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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) { + r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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) { + r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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) { + r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + r0, er := C.mlockall(C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + r0, er := C.munlockall() + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) + tt = Time_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsystemcfg(label int) (n uint64) { + r0, _ := C.getsystemcfg(C.int(label)) + n = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func umount(target string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(target))) + r0, er := C.umount(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + r0, er := C.setrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) + off = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) + xaddr = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go new file mode 100644 index 0000000..664b293 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -0,0 +1,1442 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build aix,ppc64 + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) + wpid = Pid_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, e1 := callioctl(fd, int(req), arg) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { + r0, e1 := callfcntl(fd, cmd, uintptr(arg)) + r = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callfcntl(uintptr(fd), cmd, uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callacct(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callchdir(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, e1 := callchroot(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, e1 := callclose(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, e1 := calldup(oldfd) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + callexit(code) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, e1 := callfchdir(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, e1 := callfchmod(fd, mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, e1 := callfdatasync(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, e1 := callfsync(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, e1 := callgetpgid(pid) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pid int) { + r0, _ := callgetpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := callgetpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := callgetppid() + ppid = 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) { + r0, e1 := callgetpriority(which, who) + prio = 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 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, e1 := callgetsid(pid) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + _, e1 := callkill(pid, int(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, e1 := callsetpgid(pid, pgid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, e1 := callsetsid() + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, e1 := callsetuid(uid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + _, e1 := callsetgid(uid) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callsetpriority(which, who, prio) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + callsync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := callumask(mask) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, e1 := calluname(uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callunlink(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, e1 := calldup2(oldfd, newfd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, e1 := callposix_fadvise64(fd, offset, length, advice) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callfchown(fd, uid, gid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_t) (err error) { + _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, e1 := callftruncate(fd, length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := callgetegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := callgeteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := callgetgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := callgetuid() + uid = int(r0) + 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 + } + _, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, e1 := calllisten(s, n) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, e1 := callpause() + if e1 != 0 { + err = errnoErr(e1) + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, e1 := callsetregid(rgid, egid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, e1 := callsetreuid(ruid, euid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, e1 := callshutdown(fd, how) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statptr *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callbind(s, uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callconnect(s, uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callgetgroups(n, uintptr(unsafe.Pointer(list))) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callsetsockopt(s, level, name, uintptr(val), vallen) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callsocket(domain, typ, proto) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), 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 munmap(addr uintptr, length uintptr) (err error) { + _, e1 := callmunmap(addr, length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, e1 := callmlockall(flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, e1 := callmunlockall() + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, e1 := callpipe(uintptr(unsafe.Pointer(p))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, e1 := calltime(uintptr(unsafe.Pointer(t))) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsystemcfg(label int) (n uint64) { + r0, _ := callgetsystemcfg(label) + n = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func umount(target string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, e1 := callumount(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, e1 := callsetrlimit(resource, uintptr(unsafe.Pointer(rlim))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, e1 := calllseek(fd, offset, whence) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go new file mode 100644 index 0000000..0550da0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -0,0 +1,1192 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build aix,ppc64 +// +build gc + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fsync fsync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" + +//go:linkname libc_utimes libc_utimes +//go:linkname libc_utimensat libc_utimensat +//go:linkname libc_getcwd libc_getcwd +//go:linkname libc_accept libc_accept +//go:linkname libc_getdirent libc_getdirent +//go:linkname libc_wait4 libc_wait4 +//go:linkname libc_ioctl libc_ioctl +//go:linkname libc_fcntl libc_fcntl +//go:linkname libc_acct libc_acct +//go:linkname libc_chdir libc_chdir +//go:linkname libc_chroot libc_chroot +//go:linkname libc_close libc_close +//go:linkname libc_dup libc_dup +//go:linkname libc_exit libc_exit +//go:linkname libc_faccessat libc_faccessat +//go:linkname libc_fchdir libc_fchdir +//go:linkname libc_fchmod libc_fchmod +//go:linkname libc_fchmodat libc_fchmodat +//go:linkname libc_fchownat libc_fchownat +//go:linkname libc_fdatasync libc_fdatasync +//go:linkname libc_fsync libc_fsync +//go:linkname libc_getpgid libc_getpgid +//go:linkname libc_getpgrp libc_getpgrp +//go:linkname libc_getpid libc_getpid +//go:linkname libc_getppid libc_getppid +//go:linkname libc_getpriority libc_getpriority +//go:linkname libc_getrusage libc_getrusage +//go:linkname libc_getsid libc_getsid +//go:linkname libc_kill libc_kill +//go:linkname libc_syslog libc_syslog +//go:linkname libc_mkdir libc_mkdir +//go:linkname libc_mkdirat libc_mkdirat +//go:linkname libc_mkfifo libc_mkfifo +//go:linkname libc_mknod libc_mknod +//go:linkname libc_mknodat libc_mknodat +//go:linkname libc_nanosleep libc_nanosleep +//go:linkname libc_open64 libc_open64 +//go:linkname libc_openat libc_openat +//go:linkname libc_read libc_read +//go:linkname libc_readlink libc_readlink +//go:linkname libc_renameat libc_renameat +//go:linkname libc_setdomainname libc_setdomainname +//go:linkname libc_sethostname libc_sethostname +//go:linkname libc_setpgid libc_setpgid +//go:linkname libc_setsid libc_setsid +//go:linkname libc_settimeofday libc_settimeofday +//go:linkname libc_setuid libc_setuid +//go:linkname libc_setgid libc_setgid +//go:linkname libc_setpriority libc_setpriority +//go:linkname libc_statx libc_statx +//go:linkname libc_sync libc_sync +//go:linkname libc_times libc_times +//go:linkname libc_umask libc_umask +//go:linkname libc_uname libc_uname +//go:linkname libc_unlink libc_unlink +//go:linkname libc_unlinkat libc_unlinkat +//go:linkname libc_ustat libc_ustat +//go:linkname libc_write libc_write +//go:linkname libc_dup2 libc_dup2 +//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 +//go:linkname libc_fchown libc_fchown +//go:linkname libc_fstat libc_fstat +//go:linkname libc_fstatat libc_fstatat +//go:linkname libc_fstatfs libc_fstatfs +//go:linkname libc_ftruncate libc_ftruncate +//go:linkname libc_getegid libc_getegid +//go:linkname libc_geteuid libc_geteuid +//go:linkname libc_getgid libc_getgid +//go:linkname libc_getuid libc_getuid +//go:linkname libc_lchown libc_lchown +//go:linkname libc_listen libc_listen +//go:linkname libc_lstat libc_lstat +//go:linkname libc_pause libc_pause +//go:linkname libc_pread64 libc_pread64 +//go:linkname libc_pwrite64 libc_pwrite64 +//go:linkname libc_select libc_select +//go:linkname libc_pselect libc_pselect +//go:linkname libc_setregid libc_setregid +//go:linkname libc_setreuid libc_setreuid +//go:linkname libc_shutdown libc_shutdown +//go:linkname libc_splice libc_splice +//go:linkname libc_stat libc_stat +//go:linkname libc_statfs libc_statfs +//go:linkname libc_truncate libc_truncate +//go:linkname libc_bind libc_bind +//go:linkname libc_connect libc_connect +//go:linkname libc_getgroups libc_getgroups +//go:linkname libc_setgroups libc_setgroups +//go:linkname libc_getsockopt libc_getsockopt +//go:linkname libc_setsockopt libc_setsockopt +//go:linkname libc_socket libc_socket +//go:linkname libc_socketpair libc_socketpair +//go:linkname libc_getpeername libc_getpeername +//go:linkname libc_getsockname libc_getsockname +//go:linkname libc_recvfrom libc_recvfrom +//go:linkname libc_sendto libc_sendto +//go:linkname libc_nrecvmsg libc_nrecvmsg +//go:linkname libc_nsendmsg libc_nsendmsg +//go:linkname libc_munmap libc_munmap +//go:linkname libc_madvise libc_madvise +//go:linkname libc_mprotect libc_mprotect +//go:linkname libc_mlock libc_mlock +//go:linkname libc_mlockall libc_mlockall +//go:linkname libc_msync libc_msync +//go:linkname libc_munlock libc_munlock +//go:linkname libc_munlockall libc_munlockall +//go:linkname libc_pipe libc_pipe +//go:linkname libc_poll libc_poll +//go:linkname libc_gettimeofday libc_gettimeofday +//go:linkname libc_time libc_time +//go:linkname libc_utime libc_utime +//go:linkname libc_getsystemcfg libc_getsystemcfg +//go:linkname libc_umount libc_umount +//go:linkname libc_getrlimit libc_getrlimit +//go:linkname libc_setrlimit libc_setrlimit +//go:linkname libc_lseek libc_lseek +//go:linkname libc_mmap64 libc_mmap64 + +type syscallFunc uintptr + +var ( + libc_utimes, + libc_utimensat, + libc_getcwd, + libc_accept, + libc_getdirent, + libc_wait4, + libc_ioctl, + libc_fcntl, + libc_acct, + libc_chdir, + libc_chroot, + libc_close, + libc_dup, + libc_exit, + libc_faccessat, + libc_fchdir, + libc_fchmod, + libc_fchmodat, + libc_fchownat, + libc_fdatasync, + libc_fsync, + libc_getpgid, + libc_getpgrp, + libc_getpid, + libc_getppid, + libc_getpriority, + libc_getrusage, + libc_getsid, + libc_kill, + libc_syslog, + libc_mkdir, + libc_mkdirat, + libc_mkfifo, + libc_mknod, + libc_mknodat, + libc_nanosleep, + libc_open64, + libc_openat, + libc_read, + libc_readlink, + libc_renameat, + libc_setdomainname, + libc_sethostname, + libc_setpgid, + libc_setsid, + libc_settimeofday, + libc_setuid, + libc_setgid, + libc_setpriority, + libc_statx, + libc_sync, + libc_times, + libc_umask, + libc_uname, + libc_unlink, + libc_unlinkat, + libc_ustat, + libc_write, + libc_dup2, + libc_posix_fadvise64, + libc_fchown, + libc_fstat, + libc_fstatat, + libc_fstatfs, + libc_ftruncate, + libc_getegid, + libc_geteuid, + libc_getgid, + libc_getuid, + libc_lchown, + libc_listen, + libc_lstat, + libc_pause, + libc_pread64, + libc_pwrite64, + libc_select, + libc_pselect, + libc_setregid, + libc_setreuid, + libc_shutdown, + libc_splice, + libc_stat, + libc_statfs, + libc_truncate, + libc_bind, + libc_connect, + libc_getgroups, + libc_setgroups, + libc_getsockopt, + libc_setsockopt, + libc_socket, + libc_socketpair, + libc_getpeername, + libc_getsockname, + libc_recvfrom, + libc_sendto, + libc_nrecvmsg, + libc_nsendmsg, + libc_munmap, + libc_madvise, + libc_mprotect, + libc_mlock, + libc_mlockall, + libc_msync, + libc_munlock, + libc_munlockall, + libc_pipe, + libc_poll, + libc_gettimeofday, + libc_time, + libc_utime, + libc_getsystemcfg, + libc_umount, + libc_getrlimit, + libc_setrlimit, + libc_lseek, + libc_mmap64 syscallFunc +) + +// Implemented in runtime/syscall_aix.go. +func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go new file mode 100644 index 0000000..cde4dbc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -0,0 +1,1070 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build aix,ppc64 +// +build gccgo + +package unix + +/* +#include +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int fsync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +int lstat(uintptr_t, uintptr_t); +int pause(); +int pread64(int, uintptr_t, size_t, long long); +int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int setregid(int, int); +int setreuid(int, int); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +int getpeername(int, uintptr_t, uintptr_t); +int getsockname(int, uintptr_t, uintptr_t); +int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); +int munmap(uintptr_t, uintptr_t); +int madvise(uintptr_t, size_t, int); +int mprotect(uintptr_t, size_t, int); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +int poll(uintptr_t, int, int); +int gettimeofday(uintptr_t, uintptr_t); +int time(uintptr_t); +int utime(uintptr_t, uintptr_t); +unsigned long long getsystemcfg(int); +int umount(uintptr_t); +int getrlimit(int, uintptr_t); +int setrlimit(int, uintptr_t); +long long lseek(int, long long, int); +uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "syscall" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.acct(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chdir(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chroot(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.close(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup(C.int(oldfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.exit(C.int(code))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchdir(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fdatasync(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fsync(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgrp()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getppid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpriority(C.int(which), C.int(who))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.kill(C.int(pid), C.int(sig))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setuid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sync()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.times(C.uintptr_t(tms))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umask(C.int(mask))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.uname(C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlink(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getegid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.geteuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.listen(C.int(s), C.int(n))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pause()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlockall(C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlockall()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pipe(C.uintptr_t(p))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.time(C.uintptr_t(t))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsystemcfg(C.int(label))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umount(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setrlimit(C.int(resource), C.uintptr_t(rlim))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go new file mode 100644 index 0000000..c8c142c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go @@ -0,0 +1,39 @@ +// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,386,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s new file mode 100644 index 0000000..00da1eb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go 386 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go new file mode 100644 index 0000000..3877183 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go @@ -0,0 +1,2430 @@ +// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,386,go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getgroups_trampoline() + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgroups_trampoline() + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_wait4_trampoline() + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_accept_trampoline() + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_bind_trampoline() + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_connect_trampoline() + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socket_trampoline() + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockopt_trampoline() + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsockopt_trampoline() + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpeername_trampoline() + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockname_trampoline() + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_shutdown_trampoline() + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socketpair_trampoline() + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvfrom_trampoline() + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendto_trampoline() + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvmsg_trampoline() + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendmsg_trampoline() + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kevent_trampoline() + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_utimes_trampoline() + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_futimes_trampoline() + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_poll_trampoline() + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_madvise_trampoline() + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlock_trampoline() + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlockall_trampoline() + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mprotect_trampoline() + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_msync_trampoline() + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlock_trampoline() + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlockall_trampoline() + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pipe_trampoline() + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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 + } + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getxattr_trampoline() + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fgetxattr_trampoline() + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options 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 + } + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setxattr_trampoline() + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsetxattr_trampoline() + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_removexattr_trampoline() + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fremovexattr_trampoline() + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listxattr_trampoline() + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flistxattr_trampoline() + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setattrlist_trampoline() + +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ioctl_trampoline() + +//go:cgo_import_dynamic libc_ioctl ioctl "/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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/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_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_access_trampoline() + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_adjtime_trampoline() + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chdir_trampoline() + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chflags_trampoline() + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chmod_trampoline() + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chown_trampoline() + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chroot_trampoline() + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_close_trampoline() + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup_trampoline() + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup2_trampoline() + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_exchangedata_trampoline() + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + return +} + +func libc_exit_trampoline() + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_faccessat_trampoline() + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchdir_trampoline() + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchflags_trampoline() + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmod_trampoline() + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmodat_trampoline() + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchown_trampoline() + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchownat_trampoline() + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flock_trampoline() + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fpathconf_trampoline() + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsync_trampoline() + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ftruncate_trampoline() + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + size = int(r0) + return +} + +func libc_getdtablesize_trampoline() + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + egid = int(r0) + return +} + +func libc_getegid_trampoline() + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_geteuid_trampoline() + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + gid = int(r0) + return +} + +func libc_getgid_trampoline() + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpgid_trampoline() + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + pgrp = int(r0) + return +} + +func libc_getpgrp_trampoline() + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + pid = int(r0) + return +} + +func libc_getpid_trampoline() + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + ppid = int(r0) + return +} + +func libc_getppid_trampoline() + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpriority_trampoline() + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrlimit_trampoline() + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrusage_trampoline() + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsid_trampoline() + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_getuid_trampoline() + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +func libc_issetugid_trampoline() + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kqueue_trampoline() + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lchown_trampoline() + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_link_trampoline() + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_linkat_trampoline() + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listen_trampoline() + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdir_trampoline() + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdirat_trampoline() + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkfifo_trampoline() + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mknod_trampoline() + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_open_trampoline() + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_openat_trampoline() + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pathconf_trampoline() + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pread_trampoline() + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pwrite_trampoline() + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_read_trampoline() + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlink_trampoline() + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlinkat_trampoline() + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rename_trampoline() + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_renameat_trampoline() + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_revoke_trampoline() + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rmdir_trampoline() + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lseek_trampoline() + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_select_trampoline() + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setegid_trampoline() + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_seteuid_trampoline() + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgid_trampoline() + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setlogin_trampoline() + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpgid_trampoline() + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpriority_trampoline() + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setprivexec_trampoline() + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setregid_trampoline() + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setreuid_trampoline() + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setrlimit_trampoline() + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsid_trampoline() + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_settimeofday_trampoline() + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setuid_trampoline() + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlink_trampoline() + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlinkat_trampoline() + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sync_trampoline() + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_truncate_trampoline() + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +func libc_umask_trampoline() + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_undelete_trampoline() + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlink_trampoline() + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlinkat_trampoline() + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unmount_trampoline() + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_write_trampoline() + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// 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_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mmap_trampoline() + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munmap_trampoline() + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat64_trampoline() + +//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat64_trampoline() + +//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs64_trampoline() + +//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat64_trampoline() + +//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat64_trampoline() + +//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs64_trampoline() + +//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s new file mode 100644 index 0000000..1c53979 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s @@ -0,0 +1,290 @@ +// go run mkasm_darwin.go 386 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) +TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) +TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) +TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) +TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go new file mode 100644 index 0000000..8882623 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go @@ -0,0 +1,39 @@ +// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,amd64,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s new file mode 100644 index 0000000..d671e83 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go amd64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go new file mode 100644 index 0000000..508e563 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -0,0 +1,2430 @@ +// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,amd64,go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getgroups_trampoline() + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgroups_trampoline() + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_wait4_trampoline() + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_accept_trampoline() + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_bind_trampoline() + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_connect_trampoline() + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socket_trampoline() + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockopt_trampoline() + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsockopt_trampoline() + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpeername_trampoline() + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockname_trampoline() + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_shutdown_trampoline() + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socketpair_trampoline() + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvfrom_trampoline() + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendto_trampoline() + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvmsg_trampoline() + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendmsg_trampoline() + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kevent_trampoline() + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_utimes_trampoline() + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_futimes_trampoline() + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_poll_trampoline() + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_madvise_trampoline() + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlock_trampoline() + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlockall_trampoline() + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mprotect_trampoline() + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_msync_trampoline() + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlock_trampoline() + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlockall_trampoline() + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pipe_trampoline() + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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 + } + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getxattr_trampoline() + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fgetxattr_trampoline() + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options 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 + } + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setxattr_trampoline() + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsetxattr_trampoline() + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_removexattr_trampoline() + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fremovexattr_trampoline() + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listxattr_trampoline() + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flistxattr_trampoline() + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setattrlist_trampoline() + +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ioctl_trampoline() + +//go:cgo_import_dynamic libc_ioctl ioctl "/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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/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(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_access_trampoline() + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_adjtime_trampoline() + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chdir_trampoline() + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chflags_trampoline() + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chmod_trampoline() + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chown_trampoline() + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chroot_trampoline() + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_close_trampoline() + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup_trampoline() + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup2_trampoline() + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_exchangedata_trampoline() + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + return +} + +func libc_exit_trampoline() + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_faccessat_trampoline() + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchdir_trampoline() + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchflags_trampoline() + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmod_trampoline() + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmodat_trampoline() + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchown_trampoline() + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchownat_trampoline() + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flock_trampoline() + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fpathconf_trampoline() + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsync_trampoline() + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ftruncate_trampoline() + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + size = int(r0) + return +} + +func libc_getdtablesize_trampoline() + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + egid = int(r0) + return +} + +func libc_getegid_trampoline() + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_geteuid_trampoline() + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + gid = int(r0) + return +} + +func libc_getgid_trampoline() + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpgid_trampoline() + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + pgrp = int(r0) + return +} + +func libc_getpgrp_trampoline() + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + pid = int(r0) + return +} + +func libc_getpid_trampoline() + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + ppid = int(r0) + return +} + +func libc_getppid_trampoline() + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpriority_trampoline() + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrlimit_trampoline() + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrusage_trampoline() + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsid_trampoline() + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_getuid_trampoline() + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +func libc_issetugid_trampoline() + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kqueue_trampoline() + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lchown_trampoline() + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_link_trampoline() + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_linkat_trampoline() + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listen_trampoline() + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdir_trampoline() + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdirat_trampoline() + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkfifo_trampoline() + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mknod_trampoline() + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_open_trampoline() + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_openat_trampoline() + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pathconf_trampoline() + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pread_trampoline() + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pwrite_trampoline() + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_read_trampoline() + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlink_trampoline() + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlinkat_trampoline() + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rename_trampoline() + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_renameat_trampoline() + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_revoke_trampoline() + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rmdir_trampoline() + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lseek_trampoline() + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_select_trampoline() + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setegid_trampoline() + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_seteuid_trampoline() + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgid_trampoline() + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setlogin_trampoline() + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpgid_trampoline() + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpriority_trampoline() + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setprivexec_trampoline() + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setregid_trampoline() + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setreuid_trampoline() + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setrlimit_trampoline() + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsid_trampoline() + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_settimeofday_trampoline() + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setuid_trampoline() + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlink_trampoline() + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlinkat_trampoline() + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sync_trampoline() + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_truncate_trampoline() + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +func libc_umask_trampoline() + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_undelete_trampoline() + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlink_trampoline() + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlinkat_trampoline() + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unmount_trampoline() + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_write_trampoline() + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mmap_trampoline() + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munmap_trampoline() + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat64_trampoline() + +//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat64_trampoline() + +//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs64_trampoline() + +//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat64_trampoline() + +//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat64_trampoline() + +//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs64_trampoline() + +//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s new file mode 100644 index 0000000..c77bd6e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -0,0 +1,290 @@ +// go run mkasm_darwin.go amd64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) +TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) +TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) +TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) +TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go new file mode 100644 index 0000000..de4738f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go @@ -0,0 +1,39 @@ +// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s new file mode 100644 index 0000000..488e557 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go arm +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go new file mode 100644 index 0000000..c0c771f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go @@ -0,0 +1,2416 @@ +// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm,go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getgroups_trampoline() + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgroups_trampoline() + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_wait4_trampoline() + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_accept_trampoline() + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_bind_trampoline() + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_connect_trampoline() + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socket_trampoline() + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockopt_trampoline() + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsockopt_trampoline() + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpeername_trampoline() + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockname_trampoline() + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_shutdown_trampoline() + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socketpair_trampoline() + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvfrom_trampoline() + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendto_trampoline() + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvmsg_trampoline() + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendmsg_trampoline() + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kevent_trampoline() + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_utimes_trampoline() + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_futimes_trampoline() + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_poll_trampoline() + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_madvise_trampoline() + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlock_trampoline() + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlockall_trampoline() + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mprotect_trampoline() + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_msync_trampoline() + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlock_trampoline() + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlockall_trampoline() + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pipe_trampoline() + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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 + } + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getxattr_trampoline() + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fgetxattr_trampoline() + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options 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 + } + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setxattr_trampoline() + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsetxattr_trampoline() + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_removexattr_trampoline() + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fremovexattr_trampoline() + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listxattr_trampoline() + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flistxattr_trampoline() + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setattrlist_trampoline() + +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ioctl_trampoline() + +//go:cgo_import_dynamic libc_ioctl ioctl "/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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/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_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_access_trampoline() + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_adjtime_trampoline() + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chdir_trampoline() + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chflags_trampoline() + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chmod_trampoline() + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chown_trampoline() + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chroot_trampoline() + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_close_trampoline() + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup_trampoline() + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup2_trampoline() + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_exchangedata_trampoline() + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + return +} + +func libc_exit_trampoline() + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_faccessat_trampoline() + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchdir_trampoline() + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchflags_trampoline() + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmod_trampoline() + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmodat_trampoline() + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchown_trampoline() + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchownat_trampoline() + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flock_trampoline() + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fpathconf_trampoline() + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsync_trampoline() + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ftruncate_trampoline() + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + size = int(r0) + return +} + +func libc_getdtablesize_trampoline() + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + egid = int(r0) + return +} + +func libc_getegid_trampoline() + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_geteuid_trampoline() + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + gid = int(r0) + return +} + +func libc_getgid_trampoline() + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpgid_trampoline() + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + pgrp = int(r0) + return +} + +func libc_getpgrp_trampoline() + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + pid = int(r0) + return +} + +func libc_getpid_trampoline() + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + ppid = int(r0) + return +} + +func libc_getppid_trampoline() + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpriority_trampoline() + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrlimit_trampoline() + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrusage_trampoline() + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsid_trampoline() + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_getuid_trampoline() + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +func libc_issetugid_trampoline() + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kqueue_trampoline() + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lchown_trampoline() + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_link_trampoline() + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_linkat_trampoline() + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listen_trampoline() + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdir_trampoline() + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdirat_trampoline() + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkfifo_trampoline() + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mknod_trampoline() + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_open_trampoline() + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_openat_trampoline() + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pathconf_trampoline() + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pread_trampoline() + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pwrite_trampoline() + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_read_trampoline() + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlink_trampoline() + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlinkat_trampoline() + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rename_trampoline() + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_renameat_trampoline() + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_revoke_trampoline() + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rmdir_trampoline() + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lseek_trampoline() + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_select_trampoline() + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setegid_trampoline() + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_seteuid_trampoline() + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgid_trampoline() + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setlogin_trampoline() + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpgid_trampoline() + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpriority_trampoline() + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setprivexec_trampoline() + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setregid_trampoline() + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setreuid_trampoline() + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setrlimit_trampoline() + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsid_trampoline() + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_settimeofday_trampoline() + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setuid_trampoline() + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlink_trampoline() + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlinkat_trampoline() + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sync_trampoline() + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_truncate_trampoline() + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +func libc_umask_trampoline() + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_undelete_trampoline() + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlink_trampoline() + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlinkat_trampoline() + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unmount_trampoline() + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_write_trampoline() + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// 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_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mmap_trampoline() + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munmap_trampoline() + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat_trampoline() + +//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat_trampoline() + +//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs_trampoline() + +//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat_trampoline() + +//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat_trampoline() + +//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs_trampoline() + +//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s new file mode 100644 index 0000000..5eec5f1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s @@ -0,0 +1,288 @@ +// go run mkasm_darwin.go arm +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go new file mode 100644 index 0000000..870eb37 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go @@ -0,0 +1,39 @@ +// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm64,go1.13 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_closedir_trampoline() + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +func libc_readdir_r_trampoline() + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s new file mode 100644 index 0000000..b29dabb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s @@ -0,0 +1,12 @@ +// go run mkasm_darwin.go arm64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.13 + +#include "textflag.h" +TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go new file mode 100644 index 0000000..9b01a79 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -0,0 +1,2430 @@ +// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm64,go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getgroups_trampoline() + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgroups_trampoline() + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_wait4_trampoline() + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_accept_trampoline() + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_bind_trampoline() + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_connect_trampoline() + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socket_trampoline() + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockopt_trampoline() + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsockopt_trampoline() + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpeername_trampoline() + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsockname_trampoline() + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_shutdown_trampoline() + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_socketpair_trampoline() + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvfrom_trampoline() + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendto_trampoline() + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_recvmsg_trampoline() + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendmsg_trampoline() + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kevent_trampoline() + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_utimes_trampoline() + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_futimes_trampoline() + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_poll_trampoline() + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_madvise_trampoline() + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlock_trampoline() + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mlockall_trampoline() + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mprotect_trampoline() + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// 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) + } + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_msync_trampoline() + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlock_trampoline() + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munlockall_trampoline() + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pipe_trampoline() + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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 + } + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getxattr_trampoline() + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fgetxattr_trampoline() + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options 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 + } + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setxattr_trampoline() + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsetxattr_trampoline() + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_removexattr_trampoline() + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fremovexattr_trampoline() + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listxattr_trampoline() + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flistxattr_trampoline() + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setattrlist_trampoline() + +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ioctl_trampoline() + +//go:cgo_import_dynamic libc_ioctl ioctl "/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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:cgo_import_dynamic libc_sysctl sysctl "/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(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_access_trampoline() + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_adjtime_trampoline() + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chdir_trampoline() + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chflags_trampoline() + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chmod_trampoline() + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chown_trampoline() + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_chroot_trampoline() + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clock_gettime_trampoline() + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_close_trampoline() + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_clonefile_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefile_trampoline() + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_clonefileat_trampoline), uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_clonefileat_trampoline() + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup_trampoline() + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_dup2_trampoline() + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_exchangedata_trampoline() + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + return +} + +func libc_exit_trampoline() + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_faccessat_trampoline() + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchdir_trampoline() + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchflags_trampoline() + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmod_trampoline() + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchmodat_trampoline() + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchown_trampoline() + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fchownat_trampoline() + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fclonefileat_trampoline), uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fclonefileat_trampoline() + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_flock_trampoline() + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fpathconf_trampoline() + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fsync_trampoline() + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ftruncate_trampoline() + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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_syscall(funcPC(libc_getcwd_trampoline), uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getcwd_trampoline() + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + size = int(r0) + return +} + +func libc_getdtablesize_trampoline() + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + egid = int(r0) + return +} + +func libc_getegid_trampoline() + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_geteuid_trampoline() + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + gid = int(r0) + return +} + +func libc_getgid_trampoline() + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpgid_trampoline() + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + pgrp = int(r0) + return +} + +func libc_getpgrp_trampoline() + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + pid = int(r0) + return +} + +func libc_getpid_trampoline() + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + ppid = int(r0) + return +} + +func libc_getppid_trampoline() + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getpriority_trampoline() + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrlimit_trampoline() + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getrusage_trampoline() + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getsid_trampoline() + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + uid = int(r0) + return +} + +func libc_getuid_trampoline() + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +func libc_issetugid_trampoline() + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kqueue_trampoline() + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lchown_trampoline() + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_link_trampoline() + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_linkat_trampoline() + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_listen_trampoline() + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdir_trampoline() + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkdirat_trampoline() + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mkfifo_trampoline() + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mknod_trampoline() + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_open_trampoline() + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_openat_trampoline() + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pathconf_trampoline() + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pread_trampoline() + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_pwrite_trampoline() + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_read_trampoline() + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlink_trampoline() + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_readlinkat_trampoline() + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rename_trampoline() + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_renameat_trampoline() + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_revoke_trampoline() + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_rmdir_trampoline() + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lseek_trampoline() + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_select_trampoline() + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setegid_trampoline() + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_seteuid_trampoline() + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setgid_trampoline() + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setlogin_trampoline() + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpgid_trampoline() + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setpriority_trampoline() + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setprivexec_trampoline() + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setregid_trampoline() + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setreuid_trampoline() + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setrlimit_trampoline() + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setsid_trampoline() + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_settimeofday_trampoline() + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_setuid_trampoline() + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlink_trampoline() + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_symlinkat_trampoline() + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sync_trampoline() + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_truncate_trampoline() + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +func libc_umask_trampoline() + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_undelete_trampoline() + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlink_trampoline() + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unlinkat_trampoline() + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_unmount_trampoline() + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_write_trampoline() + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// 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(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_mmap_trampoline() + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_munmap_trampoline() + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat_trampoline() + +//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat_trampoline() + +//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs_trampoline() + +//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat_trampoline() + +//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_ptrace_trampoline() + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat_trampoline() + +//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs_trampoline() + +//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s new file mode 100644 index 0000000..53c402b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -0,0 +1,290 @@ +// go run mkasm_darwin.go arm64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_clonefile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +TEXT ·libc_clonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_fclonefileat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getcwd_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go new file mode 100644 index 0000000..1aaccd3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -0,0 +1,1676 @@ +// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build dragonfly,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go new file mode 100644 index 0000000..600f1d2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -0,0 +1,2015 @@ +// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build freebsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *stat_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat_freebsd12(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs(path string, stat *statfs_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs_freebsd12(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go new file mode 100644 index 0000000..064934b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -0,0 +1,2015 @@ +// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build freebsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *stat_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat_freebsd12(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs(path string, stat *statfs_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs_freebsd12(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go new file mode 100644 index 0000000..31d2c46 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -0,0 +1,2015 @@ +// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build freebsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *stat_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat_freebsd12(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs(path string, stat *statfs_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs_freebsd12(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go new file mode 100644 index 0000000..4adaaa5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -0,0 +1,2015 @@ +// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build freebsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *stat_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat_freebsd12(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs(path string, stat *statfs_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs_freebsd12(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go new file mode 100644 index 0000000..665dd9e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -0,0 +1,101 @@ +// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build illumos,amd64 + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_readv readv "libc.so" +//go:cgo_import_dynamic libc_preadv preadv "libc.so" +//go:cgo_import_dynamic libc_writev writev "libc.so" +//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" +//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" + +//go:linkname procreadv libc_readv +//go:linkname procpreadv libc_preadv +//go:linkname procwritev libc_writev +//go:linkname procpwritev libc_pwritev +//go:linkname procaccept4 libc_accept4 + +var ( + procreadv, + procpreadv, + procwritev, + procpwritev, + procaccept4 syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go new file mode 100644 index 0000000..2fbbbe5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -0,0 +1,1933 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +import ( + "syscall" + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { + r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fchmodat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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 + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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 + } + r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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_GETCWD, uintptr(_p0), uintptr(len(buf)), 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 wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlJoin(cmd int, arg2 string) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg2) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg3) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(arg4) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { + var _p0 unsafe.Pointer + if len(payload) > 0 { + _p0 = unsafe.Pointer(&payload[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(restriction) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { + _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (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 + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(payload) > 0 { + _p2 = unsafe.Pointer(&payload[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGetres(clockid int32, res *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Eventfd(initval uint, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FinitModule(fd int, params string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsetxattr(fd int, attr string, dest []byte, flags 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) + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InitModule(moduleImage []byte, params string) (err error) { + var _p0 unsafe.Pointer + if len(moduleImage) > 0 { + _p0 = unsafe.Pointer(&moduleImage[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 *byte + _p1, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (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_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lgetxattr(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, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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 + } + _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdCreate(name string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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 + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(callback) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { + r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) + newfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + SyscallNoError(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Syncfs(fd int) (err error) { + _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdCreate(clockid int, flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func faccessat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go new file mode 100644 index 0000000..19ebd3f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -0,0 +1,578 @@ +// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go new file mode 100644 index 0000000..5c56218 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -0,0 +1,745 @@ +// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func inotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go new file mode 100644 index 0000000..dc69d99 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -0,0 +1,715 @@ +// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go new file mode 100644 index 0000000..1b897de --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -0,0 +1,602 @@ +// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go new file mode 100644 index 0000000..4918684 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -0,0 +1,758 @@ +// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,mips + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (p1 int, p2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + p1 = int(r0) + p2 = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go new file mode 100644 index 0000000..9171d3b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -0,0 +1,729 @@ +// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,mips64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, st *stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go new file mode 100644 index 0000000..82286f0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -0,0 +1,729 @@ +// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,mips64le + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, st *stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go new file mode 100644 index 0000000..1592062 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -0,0 +1,758 @@ +// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (p1 int, p2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + p1 = int(r0) + p2 = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go new file mode 100644 index 0000000..73a42e2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -0,0 +1,807 @@ +// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,ppc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go new file mode 100644 index 0000000..6b85595 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -0,0 +1,807 @@ +// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,ppc64le + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go new file mode 100644 index 0000000..b761334 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -0,0 +1,582 @@ +// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,riscv64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go new file mode 100644 index 0000000..d7032ab --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -0,0 +1,577 @@ +// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,s390x + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go new file mode 100644 index 0000000..bcbbdd9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -0,0 +1,740 @@ +// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build linux,sparc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD64, 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, 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 Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go new file mode 100644 index 0000000..3bbd9e3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -0,0 +1,1851 @@ +// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build netbsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (fd1 int, fd2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + fd1 = int(r0) + fd2 = int(r1) + 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go new file mode 100644 index 0000000..d8cf501 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -0,0 +1,1851 @@ +// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build netbsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (fd1 int, fd2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + fd1 = int(r0) + fd2 = int(r1) + 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go new file mode 100644 index 0000000..1153fe6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -0,0 +1,1851 @@ +// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build netbsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (fd1 int, fd2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + fd1 = int(r0) + fd2 = int(r1) + 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go new file mode 100644 index 0000000..24b4ebb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -0,0 +1,1851 @@ +// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build netbsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (fd1 int, fd2 int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + fd1 = int(r0) + fd2 = int(r1) + 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + 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 new file mode 100644 index 0000000..b44b31a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -0,0 +1,1692 @@ +// go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build openbsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go new file mode 100644 index 0000000..67f93ee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -0,0 +1,1692 @@ +// go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build openbsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go new file mode 100644 index 0000000..d7c878b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -0,0 +1,1692 @@ +// go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build openbsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go new file mode 100644 index 0000000..8facd69 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -0,0 +1,1692 @@ +// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build openbsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go new file mode 100644 index 0000000..ec6bd5b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -0,0 +1,1692 @@ +// go run mksyscall.go -openbsd -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build openbsd,mips64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), 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 kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (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___GETCWD, uintptr(_p0), uintptr(len(buf)), 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 ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = 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, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = 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) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + rtable = 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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 + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 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) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func 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) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 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 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(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + 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) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + 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(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd 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 + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go new file mode 100644 index 0000000..6dbb837 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -0,0 +1,1967 @@ +// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build solaris,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +//go:cgo_import_dynamic libc_pipe pipe "libc.so" +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" +//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" +//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" +//go:cgo_import_dynamic libc_utimes utimes "libc.so" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" +//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" +//go:cgo_import_dynamic libc_accept accept "libsocket.so" +//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" +//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" +//go:cgo_import_dynamic libc_acct acct "libc.so" +//go:cgo_import_dynamic libc___makedev __makedev "libc.so" +//go:cgo_import_dynamic libc___major __major "libc.so" +//go:cgo_import_dynamic libc___minor __minor "libc.so" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" +//go:cgo_import_dynamic libc_poll poll "libc.so" +//go:cgo_import_dynamic libc_access access "libc.so" +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" +//go:cgo_import_dynamic libc_chdir chdir "libc.so" +//go:cgo_import_dynamic libc_chmod chmod "libc.so" +//go:cgo_import_dynamic libc_chown chown "libc.so" +//go:cgo_import_dynamic libc_chroot chroot "libc.so" +//go:cgo_import_dynamic libc_close close "libc.so" +//go:cgo_import_dynamic libc_creat creat "libc.so" +//go:cgo_import_dynamic libc_dup dup "libc.so" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" +//go:cgo_import_dynamic libc_exit exit "libc.so" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" +//go:cgo_import_dynamic libc_fchown fchown "libc.so" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" +//go:cgo_import_dynamic libc_flock flock "libc.so" +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" +//go:cgo_import_dynamic libc_fstat fstat "libc.so" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" +//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" +//go:cgo_import_dynamic libc_getdents getdents "libc.so" +//go:cgo_import_dynamic libc_getgid getgid "libc.so" +//go:cgo_import_dynamic libc_getpid getpid "libc.so" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" +//go:cgo_import_dynamic libc_getegid getegid "libc.so" +//go:cgo_import_dynamic libc_getppid getppid "libc.so" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" +//go:cgo_import_dynamic libc_getuid getuid "libc.so" +//go:cgo_import_dynamic libc_kill kill "libc.so" +//go:cgo_import_dynamic libc_lchown lchown "libc.so" +//go:cgo_import_dynamic libc_link link "libc.so" +//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc_lstat lstat "libc.so" +//go:cgo_import_dynamic libc_madvise madvise "libc.so" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" +//go:cgo_import_dynamic libc_mknod mknod "libc.so" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" +//go:cgo_import_dynamic libc_mlock mlock "libc.so" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" +//go:cgo_import_dynamic libc_msync msync "libc.so" +//go:cgo_import_dynamic libc_munlock munlock "libc.so" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" +//go:cgo_import_dynamic libc_open open "libc.so" +//go:cgo_import_dynamic libc_openat openat "libc.so" +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" +//go:cgo_import_dynamic libc_pause pause "libc.so" +//go:cgo_import_dynamic libc_pread pread "libc.so" +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" +//go:cgo_import_dynamic libc_read read "libc.so" +//go:cgo_import_dynamic libc_readlink readlink "libc.so" +//go:cgo_import_dynamic libc_rename rename "libc.so" +//go:cgo_import_dynamic libc_renameat renameat "libc.so" +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" +//go:cgo_import_dynamic libc_lseek lseek "libc.so" +//go:cgo_import_dynamic libc_select select "libc.so" +//go:cgo_import_dynamic libc_setegid setegid "libc.so" +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" +//go:cgo_import_dynamic libc_setgid setgid "libc.so" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" +//go:cgo_import_dynamic libc_setregid setregid "libc.so" +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" +//go:cgo_import_dynamic libc_setsid setsid "libc.so" +//go:cgo_import_dynamic libc_setuid setuid "libc.so" +//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" +//go:cgo_import_dynamic libc_stat stat "libc.so" +//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" +//go:cgo_import_dynamic libc_symlink symlink "libc.so" +//go:cgo_import_dynamic libc_sync sync "libc.so" +//go:cgo_import_dynamic libc_times times "libc.so" +//go:cgo_import_dynamic libc_truncate truncate "libc.so" +//go:cgo_import_dynamic libc_fsync fsync "libc.so" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" +//go:cgo_import_dynamic libc_umask umask "libc.so" +//go:cgo_import_dynamic libc_uname uname "libc.so" +//go:cgo_import_dynamic libc_umount umount "libc.so" +//go:cgo_import_dynamic libc_unlink unlink "libc.so" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" +//go:cgo_import_dynamic libc_ustat ustat "libc.so" +//go:cgo_import_dynamic libc_utime utime "libc.so" +//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" +//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" +//go:cgo_import_dynamic libc_mmap mmap "libc.so" +//go:cgo_import_dynamic libc_munmap munmap "libc.so" +//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" +//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" +//go:cgo_import_dynamic libc_write write "libc.so" +//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" +//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:linkname procpipe libc_pipe +//go:linkname procpipe2 libc_pipe2 +//go:linkname procgetsockname libc_getsockname +//go:linkname procGetcwd libc_getcwd +//go:linkname procgetgroups libc_getgroups +//go:linkname procsetgroups libc_setgroups +//go:linkname procwait4 libc_wait4 +//go:linkname procgethostname libc_gethostname +//go:linkname procutimes libc_utimes +//go:linkname procutimensat libc_utimensat +//go:linkname procfcntl libc_fcntl +//go:linkname procfutimesat libc_futimesat +//go:linkname procaccept libc_accept +//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg +//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg +//go:linkname procacct libc_acct +//go:linkname proc__makedev libc___makedev +//go:linkname proc__major libc___major +//go:linkname proc__minor libc___minor +//go:linkname procioctl libc_ioctl +//go:linkname procpoll libc_poll +//go:linkname procAccess libc_access +//go:linkname procAdjtime libc_adjtime +//go:linkname procChdir libc_chdir +//go:linkname procChmod libc_chmod +//go:linkname procChown libc_chown +//go:linkname procChroot libc_chroot +//go:linkname procClose libc_close +//go:linkname procCreat libc_creat +//go:linkname procDup libc_dup +//go:linkname procDup2 libc_dup2 +//go:linkname procExit libc_exit +//go:linkname procFaccessat libc_faccessat +//go:linkname procFchdir libc_fchdir +//go:linkname procFchmod libc_fchmod +//go:linkname procFchmodat libc_fchmodat +//go:linkname procFchown libc_fchown +//go:linkname procFchownat libc_fchownat +//go:linkname procFdatasync libc_fdatasync +//go:linkname procFlock libc_flock +//go:linkname procFpathconf libc_fpathconf +//go:linkname procFstat libc_fstat +//go:linkname procFstatat libc_fstatat +//go:linkname procFstatvfs libc_fstatvfs +//go:linkname procGetdents libc_getdents +//go:linkname procGetgid libc_getgid +//go:linkname procGetpid libc_getpid +//go:linkname procGetpgid libc_getpgid +//go:linkname procGetpgrp libc_getpgrp +//go:linkname procGeteuid libc_geteuid +//go:linkname procGetegid libc_getegid +//go:linkname procGetppid libc_getppid +//go:linkname procGetpriority libc_getpriority +//go:linkname procGetrlimit libc_getrlimit +//go:linkname procGetrusage libc_getrusage +//go:linkname procGettimeofday libc_gettimeofday +//go:linkname procGetuid libc_getuid +//go:linkname procKill libc_kill +//go:linkname procLchown libc_lchown +//go:linkname procLink libc_link +//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname procLstat libc_lstat +//go:linkname procMadvise libc_madvise +//go:linkname procMkdir libc_mkdir +//go:linkname procMkdirat libc_mkdirat +//go:linkname procMkfifo libc_mkfifo +//go:linkname procMkfifoat libc_mkfifoat +//go:linkname procMknod libc_mknod +//go:linkname procMknodat libc_mknodat +//go:linkname procMlock libc_mlock +//go:linkname procMlockall libc_mlockall +//go:linkname procMprotect libc_mprotect +//go:linkname procMsync libc_msync +//go:linkname procMunlock libc_munlock +//go:linkname procMunlockall libc_munlockall +//go:linkname procNanosleep libc_nanosleep +//go:linkname procOpen libc_open +//go:linkname procOpenat libc_openat +//go:linkname procPathconf libc_pathconf +//go:linkname procPause libc_pause +//go:linkname procPread libc_pread +//go:linkname procPwrite libc_pwrite +//go:linkname procread libc_read +//go:linkname procReadlink libc_readlink +//go:linkname procRename libc_rename +//go:linkname procRenameat libc_renameat +//go:linkname procRmdir libc_rmdir +//go:linkname proclseek libc_lseek +//go:linkname procSelect libc_select +//go:linkname procSetegid libc_setegid +//go:linkname procSeteuid libc_seteuid +//go:linkname procSetgid libc_setgid +//go:linkname procSethostname libc_sethostname +//go:linkname procSetpgid libc_setpgid +//go:linkname procSetpriority libc_setpriority +//go:linkname procSetregid libc_setregid +//go:linkname procSetreuid libc_setreuid +//go:linkname procSetrlimit libc_setrlimit +//go:linkname procSetsid libc_setsid +//go:linkname procSetuid libc_setuid +//go:linkname procshutdown libc_shutdown +//go:linkname procStat libc_stat +//go:linkname procStatvfs libc_statvfs +//go:linkname procSymlink libc_symlink +//go:linkname procSync libc_sync +//go:linkname procTimes libc_times +//go:linkname procTruncate libc_truncate +//go:linkname procFsync libc_fsync +//go:linkname procFtruncate libc_ftruncate +//go:linkname procUmask libc_umask +//go:linkname procUname libc_uname +//go:linkname procumount libc_umount +//go:linkname procUnlink libc_unlink +//go:linkname procUnlinkat libc_unlinkat +//go:linkname procUstat libc_ustat +//go:linkname procUtime libc_utime +//go:linkname proc__xnet_bind libc___xnet_bind +//go:linkname proc__xnet_connect libc___xnet_connect +//go:linkname procmmap libc_mmap +//go:linkname procmunmap libc_munmap +//go:linkname procsendfile libc_sendfile +//go:linkname proc__xnet_sendto libc___xnet_sendto +//go:linkname proc__xnet_socket libc___xnet_socket +//go:linkname proc__xnet_socketpair libc___xnet_socketpair +//go:linkname procwrite libc_write +//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt +//go:linkname procgetpeername libc_getpeername +//go:linkname procsetsockopt libc_setsockopt +//go:linkname procrecvfrom libc_recvfrom + +var ( + procpipe, + procpipe2, + procgetsockname, + procGetcwd, + procgetgroups, + procsetgroups, + procwait4, + procgethostname, + procutimes, + procutimensat, + procfcntl, + procfutimesat, + procaccept, + proc__xnet_recvmsg, + proc__xnet_sendmsg, + procacct, + proc__makedev, + proc__major, + proc__minor, + procioctl, + procpoll, + procAccess, + procAdjtime, + procChdir, + procChmod, + procChown, + procChroot, + procClose, + procCreat, + procDup, + procDup2, + procExit, + procFaccessat, + procFchdir, + procFchmod, + procFchmodat, + procFchown, + procFchownat, + procFdatasync, + procFlock, + procFpathconf, + procFstat, + procFstatat, + procFstatvfs, + procGetdents, + procGetgid, + procGetpid, + procGetpgid, + procGetpgrp, + procGeteuid, + procGetegid, + procGetppid, + procGetpriority, + procGetrlimit, + procGetrusage, + procGettimeofday, + procGetuid, + procKill, + procLchown, + procLink, + proc__xnet_llisten, + procLstat, + procMadvise, + procMkdir, + procMkdirat, + procMkfifo, + procMkfifoat, + procMknod, + procMknodat, + procMlock, + procMlockall, + procMprotect, + procMsync, + procMunlock, + procMunlockall, + procNanosleep, + procOpen, + procOpenat, + procPathconf, + procPause, + procPread, + procPwrite, + procread, + procReadlink, + procRename, + procRenameat, + procRmdir, + proclseek, + procSelect, + procSetegid, + procSeteuid, + procSetgid, + procSethostname, + procSetpgid, + procSetpriority, + procSetregid, + procSetreuid, + procSetrlimit, + procSetsid, + procSetuid, + procshutdown, + procStat, + procStatvfs, + procSymlink, + procSync, + procTimes, + procTruncate, + procFsync, + procFtruncate, + procUmask, + procUname, + procumount, + procUnlink, + procUnlinkat, + procUstat, + procUtime, + proc__xnet_bind, + proc__xnet_connect, + procmmap, + procmunmap, + procsendfile, + proc__xnet_sendto, + proc__xnet_socket, + proc__xnet_socketpair, + procwrite, + proc__xnet_getsockopt, + procgetpeername, + procsetsockopt, + procrecvfrom syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int32(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gethostname(buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func acct(path *byte) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __makedev(version int, major uint, minor uint) (val uint64) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) + val = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __major(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __minor(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Creat(path string, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) + nfd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) + 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, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + pgid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) + pgid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + 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) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd 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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs(path string, vfsstat *Statvfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(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 + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go new file mode 100644 index 0000000..102f1ab --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -0,0 +1,273 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +// +build 386,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.arandom", []_C_int{1, 37}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.random", []_C_int{1, 31}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.maxptys", []_C_int{1, 44, 6}}, + {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.userasymcrypto", []_C_int{1, 60}}, + {"kern.usercrypto", []_C_int{1, 52}}, + {"kern.usermount", []_C_int{1, 30}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.vnode", []_C_int{1, 13}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, + {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, + {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, + {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go new file mode 100644 index 0000000..4866fce --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -0,0 +1,271 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +// +build amd64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.dnsjackport", []_C_int{1, 13}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go new file mode 100644 index 0000000..d3801eb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -0,0 +1,273 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +// +build arm,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.arandom", []_C_int{1, 37}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.random", []_C_int{1, 31}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.maxptys", []_C_int{1, 44, 6}}, + {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.userasymcrypto", []_C_int{1, 60}}, + {"kern.usercrypto", []_C_int{1, 52}}, + {"kern.usermount", []_C_int{1, 30}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.vnode", []_C_int{1, 13}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, + {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, + {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, + {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go new file mode 100644 index 0000000..ba4304f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -0,0 +1,275 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +// +build arm64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go new file mode 100644 index 0000000..aca34b3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -0,0 +1,279 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +// +build mips64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go new file mode 100644 index 0000000..ad62324 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go @@ -0,0 +1,437 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_MAXSYSCALL = 530 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go new file mode 100644 index 0000000..a2fc91d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -0,0 +1,439 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_KQUEUE_WORKLOOP_CTL = 530 + SYS___MACH_BRIDGE_REMOTE_TIME = 531 + SYS_MAXSYSCALL = 532 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go new file mode 100644 index 0000000..20d7808 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go @@ -0,0 +1,437 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_MAXSYSCALL = 530 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go new file mode 100644 index 0000000..527b958 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -0,0 +1,437 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_MAXSYSCALL = 530 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go new file mode 100644 index 0000000..9912c6e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -0,0 +1,316 @@ +// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,dragonfly + +package unix + +const ( + SYS_EXIT = 1 // { void exit(int rval); } + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int + // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } + SYS_ACCESS = 33 // { int access(char *path, int flags); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { pid_t vfork(void); } + SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } + SYS_SSTK = 70 // { int sstk(size_t incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(int from, int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } + SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } + SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } + SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } + SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } + SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } + SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } + SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } + SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } + SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } + SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } + SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_CLOSEFROM = 474 // { int closefrom(int fd); } + SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } + SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } + SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } + SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } + SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } + SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } + SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } + SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } + SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } + SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } + SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } + SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } + SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } + SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } + SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } + SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } + SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } + SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } + SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } + SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } + SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } + SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } + SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } + SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } + SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } + SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } + SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } + SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } + SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } + SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } + SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } + SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } + SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } + SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } + SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } + SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } + SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } + SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } + SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_SWAPOFF = 529 // { int swapoff(char *name); } + SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } + SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } + SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } + SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } + SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } + SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } + SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } + SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} + SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } + SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } + SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } + SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } + SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } + SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } + SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } + SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } + SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } + SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } + SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } + SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } + SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go new file mode 100644 index 0000000..9474974 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -0,0 +1,396 @@ +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } + SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } + SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } + SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go new file mode 100644 index 0000000..48a7bea --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -0,0 +1,396 @@ +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } + SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } + SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } + SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go new file mode 100644 index 0000000..4a6dfd4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -0,0 +1,396 @@ +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } + SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } + SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } + SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go new file mode 100644 index 0000000..3e51af8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -0,0 +1,396 @@ +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } + SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } + SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } + SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go new file mode 100644 index 0000000..f6742bd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -0,0 +1,439 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86OLD = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_VM86 = 166 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_SET_THREAD_AREA = 243 + SYS_GET_THREAD_AREA = 244 + SYS_IO_SETUP = 245 + SYS_IO_DESTROY = 246 + SYS_IO_GETEVENTS = 247 + SYS_IO_SUBMIT = 248 + SYS_IO_CANCEL = 249 + SYS_FADVISE64 = 250 + SYS_EXIT_GROUP = 252 + SYS_LOOKUP_DCOOKIE = 253 + SYS_EPOLL_CREATE = 254 + SYS_EPOLL_CTL = 255 + SYS_EPOLL_WAIT = 256 + SYS_REMAP_FILE_PAGES = 257 + SYS_SET_TID_ADDRESS = 258 + SYS_TIMER_CREATE = 259 + SYS_TIMER_SETTIME = 260 + SYS_TIMER_GETTIME = 261 + SYS_TIMER_GETOVERRUN = 262 + SYS_TIMER_DELETE = 263 + SYS_CLOCK_SETTIME = 264 + SYS_CLOCK_GETTIME = 265 + SYS_CLOCK_GETRES = 266 + SYS_CLOCK_NANOSLEEP = 267 + SYS_STATFS64 = 268 + SYS_FSTATFS64 = 269 + SYS_TGKILL = 270 + SYS_UTIMES = 271 + SYS_FADVISE64_64 = 272 + SYS_VSERVER = 273 + SYS_MBIND = 274 + SYS_GET_MEMPOLICY = 275 + SYS_SET_MEMPOLICY = 276 + SYS_MQ_OPEN = 277 + SYS_MQ_UNLINK = 278 + SYS_MQ_TIMEDSEND = 279 + SYS_MQ_TIMEDRECEIVE = 280 + SYS_MQ_NOTIFY = 281 + SYS_MQ_GETSETATTR = 282 + SYS_KEXEC_LOAD = 283 + SYS_WAITID = 284 + SYS_ADD_KEY = 286 + SYS_REQUEST_KEY = 287 + SYS_KEYCTL = 288 + SYS_IOPRIO_SET = 289 + SYS_IOPRIO_GET = 290 + SYS_INOTIFY_INIT = 291 + SYS_INOTIFY_ADD_WATCH = 292 + SYS_INOTIFY_RM_WATCH = 293 + SYS_MIGRATE_PAGES = 294 + SYS_OPENAT = 295 + SYS_MKDIRAT = 296 + SYS_MKNODAT = 297 + SYS_FCHOWNAT = 298 + SYS_FUTIMESAT = 299 + SYS_FSTATAT64 = 300 + SYS_UNLINKAT = 301 + SYS_RENAMEAT = 302 + SYS_LINKAT = 303 + SYS_SYMLINKAT = 304 + SYS_READLINKAT = 305 + SYS_FCHMODAT = 306 + SYS_FACCESSAT = 307 + SYS_PSELECT6 = 308 + SYS_PPOLL = 309 + SYS_UNSHARE = 310 + SYS_SET_ROBUST_LIST = 311 + SYS_GET_ROBUST_LIST = 312 + SYS_SPLICE = 313 + SYS_SYNC_FILE_RANGE = 314 + SYS_TEE = 315 + SYS_VMSPLICE = 316 + SYS_MOVE_PAGES = 317 + SYS_GETCPU = 318 + SYS_EPOLL_PWAIT = 319 + SYS_UTIMENSAT = 320 + SYS_SIGNALFD = 321 + SYS_TIMERFD_CREATE = 322 + SYS_EVENTFD = 323 + SYS_FALLOCATE = 324 + SYS_TIMERFD_SETTIME = 325 + SYS_TIMERFD_GETTIME = 326 + SYS_SIGNALFD4 = 327 + SYS_EVENTFD2 = 328 + SYS_EPOLL_CREATE1 = 329 + SYS_DUP3 = 330 + SYS_PIPE2 = 331 + SYS_INOTIFY_INIT1 = 332 + SYS_PREADV = 333 + SYS_PWRITEV = 334 + SYS_RT_TGSIGQUEUEINFO = 335 + SYS_PERF_EVENT_OPEN = 336 + SYS_RECVMMSG = 337 + SYS_FANOTIFY_INIT = 338 + SYS_FANOTIFY_MARK = 339 + SYS_PRLIMIT64 = 340 + SYS_NAME_TO_HANDLE_AT = 341 + SYS_OPEN_BY_HANDLE_AT = 342 + SYS_CLOCK_ADJTIME = 343 + SYS_SYNCFS = 344 + SYS_SENDMMSG = 345 + SYS_SETNS = 346 + SYS_PROCESS_VM_READV = 347 + SYS_PROCESS_VM_WRITEV = 348 + SYS_KCMP = 349 + SYS_FINIT_MODULE = 350 + SYS_SCHED_SETATTR = 351 + SYS_SCHED_GETATTR = 352 + SYS_RENAMEAT2 = 353 + SYS_SECCOMP = 354 + SYS_GETRANDOM = 355 + SYS_MEMFD_CREATE = 356 + SYS_BPF = 357 + SYS_EXECVEAT = 358 + SYS_SOCKET = 359 + SYS_SOCKETPAIR = 360 + SYS_BIND = 361 + SYS_CONNECT = 362 + SYS_LISTEN = 363 + SYS_ACCEPT4 = 364 + SYS_GETSOCKOPT = 365 + SYS_SETSOCKOPT = 366 + SYS_GETSOCKNAME = 367 + SYS_GETPEERNAME = 368 + SYS_SENDTO = 369 + SYS_SENDMSG = 370 + SYS_RECVFROM = 371 + SYS_RECVMSG = 372 + SYS_SHUTDOWN = 373 + SYS_USERFAULTFD = 374 + SYS_MEMBARRIER = 375 + SYS_MLOCK2 = 376 + SYS_COPY_FILE_RANGE = 377 + SYS_PREADV2 = 378 + SYS_PWRITEV2 = 379 + SYS_PKEY_MPROTECT = 380 + SYS_PKEY_ALLOC = 381 + SYS_PKEY_FREE = 382 + SYS_STATX = 383 + SYS_ARCH_PRCTL = 384 + SYS_IO_PGETEVENTS = 385 + SYS_RSEQ = 386 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go new file mode 100644 index 0000000..f7e5255 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -0,0 +1,361 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,linux + +package unix + +const ( + SYS_READ = 0 + SYS_WRITE = 1 + SYS_OPEN = 2 + SYS_CLOSE = 3 + SYS_STAT = 4 + SYS_FSTAT = 5 + SYS_LSTAT = 6 + SYS_POLL = 7 + SYS_LSEEK = 8 + SYS_MMAP = 9 + SYS_MPROTECT = 10 + SYS_MUNMAP = 11 + SYS_BRK = 12 + SYS_RT_SIGACTION = 13 + SYS_RT_SIGPROCMASK = 14 + SYS_RT_SIGRETURN = 15 + SYS_IOCTL = 16 + SYS_PREAD64 = 17 + SYS_PWRITE64 = 18 + SYS_READV = 19 + SYS_WRITEV = 20 + SYS_ACCESS = 21 + SYS_PIPE = 22 + SYS_SELECT = 23 + SYS_SCHED_YIELD = 24 + SYS_MREMAP = 25 + SYS_MSYNC = 26 + SYS_MINCORE = 27 + SYS_MADVISE = 28 + SYS_SHMGET = 29 + SYS_SHMAT = 30 + SYS_SHMCTL = 31 + SYS_DUP = 32 + SYS_DUP2 = 33 + SYS_PAUSE = 34 + SYS_NANOSLEEP = 35 + SYS_GETITIMER = 36 + SYS_ALARM = 37 + SYS_SETITIMER = 38 + SYS_GETPID = 39 + SYS_SENDFILE = 40 + SYS_SOCKET = 41 + SYS_CONNECT = 42 + SYS_ACCEPT = 43 + SYS_SENDTO = 44 + SYS_RECVFROM = 45 + SYS_SENDMSG = 46 + SYS_RECVMSG = 47 + SYS_SHUTDOWN = 48 + SYS_BIND = 49 + SYS_LISTEN = 50 + SYS_GETSOCKNAME = 51 + SYS_GETPEERNAME = 52 + SYS_SOCKETPAIR = 53 + SYS_SETSOCKOPT = 54 + SYS_GETSOCKOPT = 55 + SYS_CLONE = 56 + SYS_FORK = 57 + SYS_VFORK = 58 + SYS_EXECVE = 59 + SYS_EXIT = 60 + SYS_WAIT4 = 61 + SYS_KILL = 62 + SYS_UNAME = 63 + SYS_SEMGET = 64 + SYS_SEMOP = 65 + SYS_SEMCTL = 66 + SYS_SHMDT = 67 + SYS_MSGGET = 68 + SYS_MSGSND = 69 + SYS_MSGRCV = 70 + SYS_MSGCTL = 71 + SYS_FCNTL = 72 + SYS_FLOCK = 73 + SYS_FSYNC = 74 + SYS_FDATASYNC = 75 + SYS_TRUNCATE = 76 + SYS_FTRUNCATE = 77 + SYS_GETDENTS = 78 + SYS_GETCWD = 79 + SYS_CHDIR = 80 + SYS_FCHDIR = 81 + SYS_RENAME = 82 + SYS_MKDIR = 83 + SYS_RMDIR = 84 + SYS_CREAT = 85 + SYS_LINK = 86 + SYS_UNLINK = 87 + SYS_SYMLINK = 88 + SYS_READLINK = 89 + SYS_CHMOD = 90 + SYS_FCHMOD = 91 + SYS_CHOWN = 92 + SYS_FCHOWN = 93 + SYS_LCHOWN = 94 + SYS_UMASK = 95 + SYS_GETTIMEOFDAY = 96 + SYS_GETRLIMIT = 97 + SYS_GETRUSAGE = 98 + SYS_SYSINFO = 99 + SYS_TIMES = 100 + SYS_PTRACE = 101 + SYS_GETUID = 102 + SYS_SYSLOG = 103 + SYS_GETGID = 104 + SYS_SETUID = 105 + SYS_SETGID = 106 + SYS_GETEUID = 107 + SYS_GETEGID = 108 + SYS_SETPGID = 109 + SYS_GETPPID = 110 + SYS_GETPGRP = 111 + SYS_SETSID = 112 + SYS_SETREUID = 113 + SYS_SETREGID = 114 + SYS_GETGROUPS = 115 + SYS_SETGROUPS = 116 + SYS_SETRESUID = 117 + SYS_GETRESUID = 118 + SYS_SETRESGID = 119 + SYS_GETRESGID = 120 + SYS_GETPGID = 121 + SYS_SETFSUID = 122 + SYS_SETFSGID = 123 + SYS_GETSID = 124 + SYS_CAPGET = 125 + SYS_CAPSET = 126 + SYS_RT_SIGPENDING = 127 + SYS_RT_SIGTIMEDWAIT = 128 + SYS_RT_SIGQUEUEINFO = 129 + SYS_RT_SIGSUSPEND = 130 + SYS_SIGALTSTACK = 131 + SYS_UTIME = 132 + SYS_MKNOD = 133 + SYS_USELIB = 134 + SYS_PERSONALITY = 135 + SYS_USTAT = 136 + SYS_STATFS = 137 + SYS_FSTATFS = 138 + SYS_SYSFS = 139 + SYS_GETPRIORITY = 140 + SYS_SETPRIORITY = 141 + SYS_SCHED_SETPARAM = 142 + SYS_SCHED_GETPARAM = 143 + SYS_SCHED_SETSCHEDULER = 144 + SYS_SCHED_GETSCHEDULER = 145 + SYS_SCHED_GET_PRIORITY_MAX = 146 + SYS_SCHED_GET_PRIORITY_MIN = 147 + SYS_SCHED_RR_GET_INTERVAL = 148 + SYS_MLOCK = 149 + SYS_MUNLOCK = 150 + SYS_MLOCKALL = 151 + SYS_MUNLOCKALL = 152 + SYS_VHANGUP = 153 + SYS_MODIFY_LDT = 154 + SYS_PIVOT_ROOT = 155 + SYS__SYSCTL = 156 + SYS_PRCTL = 157 + SYS_ARCH_PRCTL = 158 + SYS_ADJTIMEX = 159 + SYS_SETRLIMIT = 160 + SYS_CHROOT = 161 + SYS_SYNC = 162 + SYS_ACCT = 163 + SYS_SETTIMEOFDAY = 164 + SYS_MOUNT = 165 + SYS_UMOUNT2 = 166 + SYS_SWAPON = 167 + SYS_SWAPOFF = 168 + SYS_REBOOT = 169 + SYS_SETHOSTNAME = 170 + SYS_SETDOMAINNAME = 171 + SYS_IOPL = 172 + SYS_IOPERM = 173 + SYS_CREATE_MODULE = 174 + SYS_INIT_MODULE = 175 + SYS_DELETE_MODULE = 176 + SYS_GET_KERNEL_SYMS = 177 + SYS_QUERY_MODULE = 178 + SYS_QUOTACTL = 179 + SYS_NFSSERVCTL = 180 + SYS_GETPMSG = 181 + SYS_PUTPMSG = 182 + SYS_AFS_SYSCALL = 183 + SYS_TUXCALL = 184 + SYS_SECURITY = 185 + SYS_GETTID = 186 + SYS_READAHEAD = 187 + SYS_SETXATTR = 188 + SYS_LSETXATTR = 189 + SYS_FSETXATTR = 190 + SYS_GETXATTR = 191 + SYS_LGETXATTR = 192 + SYS_FGETXATTR = 193 + SYS_LISTXATTR = 194 + SYS_LLISTXATTR = 195 + SYS_FLISTXATTR = 196 + SYS_REMOVEXATTR = 197 + SYS_LREMOVEXATTR = 198 + SYS_FREMOVEXATTR = 199 + SYS_TKILL = 200 + SYS_TIME = 201 + SYS_FUTEX = 202 + SYS_SCHED_SETAFFINITY = 203 + SYS_SCHED_GETAFFINITY = 204 + SYS_SET_THREAD_AREA = 205 + SYS_IO_SETUP = 206 + SYS_IO_DESTROY = 207 + SYS_IO_GETEVENTS = 208 + SYS_IO_SUBMIT = 209 + SYS_IO_CANCEL = 210 + SYS_GET_THREAD_AREA = 211 + SYS_LOOKUP_DCOOKIE = 212 + SYS_EPOLL_CREATE = 213 + SYS_EPOLL_CTL_OLD = 214 + SYS_EPOLL_WAIT_OLD = 215 + SYS_REMAP_FILE_PAGES = 216 + SYS_GETDENTS64 = 217 + SYS_SET_TID_ADDRESS = 218 + SYS_RESTART_SYSCALL = 219 + SYS_SEMTIMEDOP = 220 + SYS_FADVISE64 = 221 + SYS_TIMER_CREATE = 222 + SYS_TIMER_SETTIME = 223 + SYS_TIMER_GETTIME = 224 + SYS_TIMER_GETOVERRUN = 225 + SYS_TIMER_DELETE = 226 + SYS_CLOCK_SETTIME = 227 + SYS_CLOCK_GETTIME = 228 + SYS_CLOCK_GETRES = 229 + SYS_CLOCK_NANOSLEEP = 230 + SYS_EXIT_GROUP = 231 + SYS_EPOLL_WAIT = 232 + SYS_EPOLL_CTL = 233 + SYS_TGKILL = 234 + SYS_UTIMES = 235 + SYS_VSERVER = 236 + SYS_MBIND = 237 + SYS_SET_MEMPOLICY = 238 + SYS_GET_MEMPOLICY = 239 + SYS_MQ_OPEN = 240 + SYS_MQ_UNLINK = 241 + SYS_MQ_TIMEDSEND = 242 + SYS_MQ_TIMEDRECEIVE = 243 + SYS_MQ_NOTIFY = 244 + SYS_MQ_GETSETATTR = 245 + SYS_KEXEC_LOAD = 246 + SYS_WAITID = 247 + SYS_ADD_KEY = 248 + SYS_REQUEST_KEY = 249 + SYS_KEYCTL = 250 + SYS_IOPRIO_SET = 251 + SYS_IOPRIO_GET = 252 + SYS_INOTIFY_INIT = 253 + SYS_INOTIFY_ADD_WATCH = 254 + SYS_INOTIFY_RM_WATCH = 255 + SYS_MIGRATE_PAGES = 256 + SYS_OPENAT = 257 + SYS_MKDIRAT = 258 + SYS_MKNODAT = 259 + SYS_FCHOWNAT = 260 + SYS_FUTIMESAT = 261 + SYS_NEWFSTATAT = 262 + SYS_UNLINKAT = 263 + SYS_RENAMEAT = 264 + SYS_LINKAT = 265 + SYS_SYMLINKAT = 266 + SYS_READLINKAT = 267 + SYS_FCHMODAT = 268 + SYS_FACCESSAT = 269 + SYS_PSELECT6 = 270 + SYS_PPOLL = 271 + SYS_UNSHARE = 272 + SYS_SET_ROBUST_LIST = 273 + SYS_GET_ROBUST_LIST = 274 + SYS_SPLICE = 275 + SYS_TEE = 276 + SYS_SYNC_FILE_RANGE = 277 + SYS_VMSPLICE = 278 + SYS_MOVE_PAGES = 279 + SYS_UTIMENSAT = 280 + SYS_EPOLL_PWAIT = 281 + SYS_SIGNALFD = 282 + SYS_TIMERFD_CREATE = 283 + SYS_EVENTFD = 284 + SYS_FALLOCATE = 285 + SYS_TIMERFD_SETTIME = 286 + SYS_TIMERFD_GETTIME = 287 + SYS_ACCEPT4 = 288 + SYS_SIGNALFD4 = 289 + SYS_EVENTFD2 = 290 + SYS_EPOLL_CREATE1 = 291 + SYS_DUP3 = 292 + SYS_PIPE2 = 293 + SYS_INOTIFY_INIT1 = 294 + SYS_PREADV = 295 + SYS_PWRITEV = 296 + SYS_RT_TGSIGQUEUEINFO = 297 + SYS_PERF_EVENT_OPEN = 298 + SYS_RECVMMSG = 299 + SYS_FANOTIFY_INIT = 300 + SYS_FANOTIFY_MARK = 301 + SYS_PRLIMIT64 = 302 + SYS_NAME_TO_HANDLE_AT = 303 + SYS_OPEN_BY_HANDLE_AT = 304 + SYS_CLOCK_ADJTIME = 305 + SYS_SYNCFS = 306 + SYS_SENDMMSG = 307 + SYS_SETNS = 308 + SYS_GETCPU = 309 + SYS_PROCESS_VM_READV = 310 + SYS_PROCESS_VM_WRITEV = 311 + SYS_KCMP = 312 + SYS_FINIT_MODULE = 313 + SYS_SCHED_SETATTR = 314 + SYS_SCHED_GETATTR = 315 + SYS_RENAMEAT2 = 316 + SYS_SECCOMP = 317 + SYS_GETRANDOM = 318 + SYS_MEMFD_CREATE = 319 + SYS_KEXEC_FILE_LOAD = 320 + SYS_BPF = 321 + SYS_EXECVEAT = 322 + SYS_USERFAULTFD = 323 + SYS_MEMBARRIER = 324 + SYS_MLOCK2 = 325 + SYS_COPY_FILE_RANGE = 326 + SYS_PREADV2 = 327 + SYS_PWRITEV2 = 328 + SYS_PKEY_MPROTECT = 329 + SYS_PKEY_ALLOC = 330 + SYS_PKEY_FREE = 331 + SYS_STATX = 332 + SYS_IO_PGETEVENTS = 333 + SYS_RSEQ = 334 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go new file mode 100644 index 0000000..3f60977 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -0,0 +1,403 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_PTRACE = 26 + SYS_PAUSE = 29 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_VHANGUP = 111 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_GETDENTS64 = 217 + SYS_PIVOT_ROOT = 218 + SYS_MINCORE = 219 + SYS_MADVISE = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_LOOKUP_DCOOKIE = 249 + SYS_EPOLL_CREATE = 250 + SYS_EPOLL_CTL = 251 + SYS_EPOLL_WAIT = 252 + SYS_REMAP_FILE_PAGES = 253 + SYS_SET_TID_ADDRESS = 256 + SYS_TIMER_CREATE = 257 + SYS_TIMER_SETTIME = 258 + SYS_TIMER_GETTIME = 259 + SYS_TIMER_GETOVERRUN = 260 + SYS_TIMER_DELETE = 261 + SYS_CLOCK_SETTIME = 262 + SYS_CLOCK_GETTIME = 263 + SYS_CLOCK_GETRES = 264 + SYS_CLOCK_NANOSLEEP = 265 + SYS_STATFS64 = 266 + SYS_FSTATFS64 = 267 + SYS_TGKILL = 268 + SYS_UTIMES = 269 + SYS_ARM_FADVISE64_64 = 270 + SYS_PCICONFIG_IOBASE = 271 + SYS_PCICONFIG_READ = 272 + SYS_PCICONFIG_WRITE = 273 + SYS_MQ_OPEN = 274 + SYS_MQ_UNLINK = 275 + SYS_MQ_TIMEDSEND = 276 + SYS_MQ_TIMEDRECEIVE = 277 + SYS_MQ_NOTIFY = 278 + SYS_MQ_GETSETATTR = 279 + SYS_WAITID = 280 + SYS_SOCKET = 281 + SYS_BIND = 282 + SYS_CONNECT = 283 + SYS_LISTEN = 284 + SYS_ACCEPT = 285 + SYS_GETSOCKNAME = 286 + SYS_GETPEERNAME = 287 + SYS_SOCKETPAIR = 288 + SYS_SEND = 289 + SYS_SENDTO = 290 + SYS_RECV = 291 + SYS_RECVFROM = 292 + SYS_SHUTDOWN = 293 + SYS_SETSOCKOPT = 294 + SYS_GETSOCKOPT = 295 + SYS_SENDMSG = 296 + SYS_RECVMSG = 297 + SYS_SEMOP = 298 + SYS_SEMGET = 299 + SYS_SEMCTL = 300 + SYS_MSGSND = 301 + SYS_MSGRCV = 302 + SYS_MSGGET = 303 + SYS_MSGCTL = 304 + SYS_SHMAT = 305 + SYS_SHMDT = 306 + SYS_SHMGET = 307 + SYS_SHMCTL = 308 + SYS_ADD_KEY = 309 + SYS_REQUEST_KEY = 310 + SYS_KEYCTL = 311 + SYS_SEMTIMEDOP = 312 + SYS_VSERVER = 313 + SYS_IOPRIO_SET = 314 + SYS_IOPRIO_GET = 315 + SYS_INOTIFY_INIT = 316 + SYS_INOTIFY_ADD_WATCH = 317 + SYS_INOTIFY_RM_WATCH = 318 + SYS_MBIND = 319 + SYS_GET_MEMPOLICY = 320 + SYS_SET_MEMPOLICY = 321 + SYS_OPENAT = 322 + SYS_MKDIRAT = 323 + SYS_MKNODAT = 324 + SYS_FCHOWNAT = 325 + SYS_FUTIMESAT = 326 + SYS_FSTATAT64 = 327 + SYS_UNLINKAT = 328 + SYS_RENAMEAT = 329 + SYS_LINKAT = 330 + SYS_SYMLINKAT = 331 + SYS_READLINKAT = 332 + SYS_FCHMODAT = 333 + SYS_FACCESSAT = 334 + SYS_PSELECT6 = 335 + SYS_PPOLL = 336 + SYS_UNSHARE = 337 + SYS_SET_ROBUST_LIST = 338 + SYS_GET_ROBUST_LIST = 339 + SYS_SPLICE = 340 + SYS_ARM_SYNC_FILE_RANGE = 341 + SYS_TEE = 342 + SYS_VMSPLICE = 343 + SYS_MOVE_PAGES = 344 + SYS_GETCPU = 345 + SYS_EPOLL_PWAIT = 346 + SYS_KEXEC_LOAD = 347 + SYS_UTIMENSAT = 348 + SYS_SIGNALFD = 349 + SYS_TIMERFD_CREATE = 350 + SYS_EVENTFD = 351 + SYS_FALLOCATE = 352 + SYS_TIMERFD_SETTIME = 353 + SYS_TIMERFD_GETTIME = 354 + SYS_SIGNALFD4 = 355 + SYS_EVENTFD2 = 356 + SYS_EPOLL_CREATE1 = 357 + SYS_DUP3 = 358 + SYS_PIPE2 = 359 + SYS_INOTIFY_INIT1 = 360 + SYS_PREADV = 361 + SYS_PWRITEV = 362 + SYS_RT_TGSIGQUEUEINFO = 363 + SYS_PERF_EVENT_OPEN = 364 + SYS_RECVMMSG = 365 + SYS_ACCEPT4 = 366 + SYS_FANOTIFY_INIT = 367 + SYS_FANOTIFY_MARK = 368 + SYS_PRLIMIT64 = 369 + SYS_NAME_TO_HANDLE_AT = 370 + SYS_OPEN_BY_HANDLE_AT = 371 + SYS_CLOCK_ADJTIME = 372 + SYS_SYNCFS = 373 + SYS_SENDMMSG = 374 + SYS_SETNS = 375 + SYS_PROCESS_VM_READV = 376 + SYS_PROCESS_VM_WRITEV = 377 + SYS_KCMP = 378 + SYS_FINIT_MODULE = 379 + SYS_SCHED_SETATTR = 380 + SYS_SCHED_GETATTR = 381 + SYS_RENAMEAT2 = 382 + SYS_SECCOMP = 383 + SYS_GETRANDOM = 384 + SYS_MEMFD_CREATE = 385 + SYS_BPF = 386 + SYS_EXECVEAT = 387 + SYS_USERFAULTFD = 388 + SYS_MEMBARRIER = 389 + SYS_MLOCK2 = 390 + SYS_COPY_FILE_RANGE = 391 + SYS_PREADV2 = 392 + SYS_PWRITEV2 = 393 + SYS_PKEY_MPROTECT = 394 + SYS_PKEY_ALLOC = 395 + SYS_PKEY_FREE = 396 + SYS_STATX = 397 + SYS_RSEQ = 398 + SYS_IO_PGETEVENTS = 399 + SYS_MIGRATE_PAGES = 400 + SYS_KEXEC_FILE_LOAD = 401 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go new file mode 100644 index 0000000..dbedf4c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -0,0 +1,306 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_RENAMEAT = 38 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_FSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + SYS_IO_PGETEVENTS = 292 + SYS_RSEQ = 293 + SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go new file mode 100644 index 0000000..eeff7e1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -0,0 +1,424 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go new file mode 100644 index 0000000..73cfa53 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -0,0 +1,354 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + SYS_STATX = 5326 + SYS_RSEQ = 5327 + SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go new file mode 100644 index 0000000..be74729 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -0,0 +1,354 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64le,linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + SYS_STATX = 5326 + SYS_RSEQ = 5327 + SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go new file mode 100644 index 0000000..2a1047c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -0,0 +1,424 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mipsle,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go new file mode 100644 index 0000000..3270742 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -0,0 +1,403 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go new file mode 100644 index 0000000..a58572f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -0,0 +1,403 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64le,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go new file mode 100644 index 0000000..72a65b7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -0,0 +1,305 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build riscv64,linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_FSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + SYS_IO_PGETEVENTS = 292 + SYS_RSEQ = 293 + SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go new file mode 100644 index 0000000..1fb9ae5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -0,0 +1,368 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build s390x,linux + +package unix + +const ( + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_RESTART_SYSCALL = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SIGNAL = 48 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_LOOKUP_DCOOKIE = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_GETDENTS = 141 + SYS_SELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_GETRLIMIT = 191 + SYS_LCHOWN = 198 + SYS_GETUID = 199 + SYS_GETGID = 200 + SYS_GETEUID = 201 + SYS_GETEGID = 202 + SYS_SETREUID = 203 + SYS_SETREGID = 204 + SYS_GETGROUPS = 205 + SYS_SETGROUPS = 206 + SYS_FCHOWN = 207 + SYS_SETRESUID = 208 + SYS_GETRESUID = 209 + SYS_SETRESGID = 210 + SYS_GETRESGID = 211 + SYS_CHOWN = 212 + SYS_SETUID = 213 + SYS_SETGID = 214 + SYS_SETFSUID = 215 + SYS_SETFSGID = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_READAHEAD = 222 + SYS_SETXATTR = 224 + SYS_LSETXATTR = 225 + SYS_FSETXATTR = 226 + SYS_GETXATTR = 227 + SYS_LGETXATTR = 228 + SYS_FGETXATTR = 229 + SYS_LISTXATTR = 230 + SYS_LLISTXATTR = 231 + SYS_FLISTXATTR = 232 + SYS_REMOVEXATTR = 233 + SYS_LREMOVEXATTR = 234 + SYS_FREMOVEXATTR = 235 + SYS_GETTID = 236 + SYS_TKILL = 237 + SYS_FUTEX = 238 + SYS_SCHED_SETAFFINITY = 239 + SYS_SCHED_GETAFFINITY = 240 + SYS_TGKILL = 241 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_EPOLL_CREATE = 249 + SYS_EPOLL_CTL = 250 + SYS_EPOLL_WAIT = 251 + SYS_SET_TID_ADDRESS = 252 + SYS_FADVISE64 = 253 + SYS_TIMER_CREATE = 254 + SYS_TIMER_SETTIME = 255 + SYS_TIMER_GETTIME = 256 + SYS_TIMER_GETOVERRUN = 257 + SYS_TIMER_DELETE = 258 + SYS_CLOCK_SETTIME = 259 + SYS_CLOCK_GETTIME = 260 + SYS_CLOCK_GETRES = 261 + SYS_CLOCK_NANOSLEEP = 262 + SYS_STATFS64 = 265 + SYS_FSTATFS64 = 266 + SYS_REMAP_FILE_PAGES = 267 + SYS_MBIND = 268 + SYS_GET_MEMPOLICY = 269 + SYS_SET_MEMPOLICY = 270 + SYS_MQ_OPEN = 271 + SYS_MQ_UNLINK = 272 + SYS_MQ_TIMEDSEND = 273 + SYS_MQ_TIMEDRECEIVE = 274 + SYS_MQ_NOTIFY = 275 + SYS_MQ_GETSETATTR = 276 + SYS_KEXEC_LOAD = 277 + SYS_ADD_KEY = 278 + SYS_REQUEST_KEY = 279 + SYS_KEYCTL = 280 + SYS_WAITID = 281 + SYS_IOPRIO_SET = 282 + SYS_IOPRIO_GET = 283 + SYS_INOTIFY_INIT = 284 + SYS_INOTIFY_ADD_WATCH = 285 + SYS_INOTIFY_RM_WATCH = 286 + SYS_MIGRATE_PAGES = 287 + SYS_OPENAT = 288 + SYS_MKDIRAT = 289 + SYS_MKNODAT = 290 + SYS_FCHOWNAT = 291 + SYS_FUTIMESAT = 292 + SYS_NEWFSTATAT = 293 + SYS_UNLINKAT = 294 + SYS_RENAMEAT = 295 + SYS_LINKAT = 296 + SYS_SYMLINKAT = 297 + SYS_READLINKAT = 298 + SYS_FCHMODAT = 299 + SYS_FACCESSAT = 300 + SYS_PSELECT6 = 301 + SYS_PPOLL = 302 + SYS_UNSHARE = 303 + SYS_SET_ROBUST_LIST = 304 + SYS_GET_ROBUST_LIST = 305 + SYS_SPLICE = 306 + SYS_SYNC_FILE_RANGE = 307 + SYS_TEE = 308 + SYS_VMSPLICE = 309 + SYS_MOVE_PAGES = 310 + SYS_GETCPU = 311 + SYS_EPOLL_PWAIT = 312 + SYS_UTIMES = 313 + SYS_FALLOCATE = 314 + SYS_UTIMENSAT = 315 + SYS_SIGNALFD = 316 + SYS_TIMERFD = 317 + SYS_EVENTFD = 318 + SYS_TIMERFD_CREATE = 319 + SYS_TIMERFD_SETTIME = 320 + SYS_TIMERFD_GETTIME = 321 + SYS_SIGNALFD4 = 322 + SYS_EVENTFD2 = 323 + SYS_INOTIFY_INIT1 = 324 + SYS_PIPE2 = 325 + SYS_DUP3 = 326 + SYS_EPOLL_CREATE1 = 327 + SYS_PREADV = 328 + SYS_PWRITEV = 329 + SYS_RT_TGSIGQUEUEINFO = 330 + SYS_PERF_EVENT_OPEN = 331 + SYS_FANOTIFY_INIT = 332 + SYS_FANOTIFY_MARK = 333 + SYS_PRLIMIT64 = 334 + SYS_NAME_TO_HANDLE_AT = 335 + SYS_OPEN_BY_HANDLE_AT = 336 + SYS_CLOCK_ADJTIME = 337 + SYS_SYNCFS = 338 + SYS_SETNS = 339 + SYS_PROCESS_VM_READV = 340 + SYS_PROCESS_VM_WRITEV = 341 + SYS_S390_RUNTIME_INSTR = 342 + SYS_KCMP = 343 + SYS_FINIT_MODULE = 344 + SYS_SCHED_SETATTR = 345 + SYS_SCHED_GETATTR = 346 + SYS_RENAMEAT2 = 347 + SYS_SECCOMP = 348 + SYS_GETRANDOM = 349 + SYS_MEMFD_CREATE = 350 + SYS_BPF = 351 + SYS_S390_PCI_MMIO_WRITE = 352 + SYS_S390_PCI_MMIO_READ = 353 + SYS_EXECVEAT = 354 + SYS_USERFAULTFD = 355 + SYS_MEMBARRIER = 356 + SYS_RECVMMSG = 357 + SYS_SENDMMSG = 358 + SYS_SOCKET = 359 + SYS_SOCKETPAIR = 360 + SYS_BIND = 361 + SYS_CONNECT = 362 + SYS_LISTEN = 363 + SYS_ACCEPT4 = 364 + SYS_GETSOCKOPT = 365 + SYS_SETSOCKOPT = 366 + SYS_GETSOCKNAME = 367 + SYS_GETPEERNAME = 368 + SYS_SENDTO = 369 + SYS_SENDMSG = 370 + SYS_RECVFROM = 371 + SYS_RECVMSG = 372 + SYS_SHUTDOWN = 373 + SYS_MLOCK2 = 374 + SYS_COPY_FILE_RANGE = 375 + SYS_PREADV2 = 376 + SYS_PWRITEV2 = 377 + SYS_S390_GUARDED_STORAGE = 378 + SYS_STATX = 379 + SYS_S390_STHYI = 380 + SYS_KEXEC_FILE_LOAD = 381 + SYS_IO_PGETEVENTS = 382 + SYS_RSEQ = 383 + SYS_PKEY_MPROTECT = 384 + SYS_PKEY_ALLOC = 385 + SYS_PKEY_FREE = 386 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go new file mode 100644 index 0000000..57636e0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -0,0 +1,382 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build sparc64,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECV = 11 + SYS_CHDIR = 12 + SYS_CHOWN = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BRK = 17 + SYS_PERFCTR = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_CAPGET = 21 + SYS_CAPSET = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_VMSPLICE = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_SIGALTSTACK = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_STAT = 38 + SYS_SENDFILE = 39 + SYS_LSTAT = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_UMOUNT2 = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_MEMORY_ORDERING = 52 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_FSTAT = 62 + SYS_FSTAT64 = 63 + SYS_GETPAGESIZE = 64 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_MMAP = 71 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_VHANGUP = 76 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_SETHOSTNAME = 88 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_ACCEPT = 99 + SYS_GETPRIORITY = 100 + SYS_RT_SIGRETURN = 101 + SYS_RT_SIGACTION = 102 + SYS_RT_SIGPROCMASK = 103 + SYS_RT_SIGPENDING = 104 + SYS_RT_SIGTIMEDWAIT = 105 + SYS_RT_SIGQUEUEINFO = 106 + SYS_RT_SIGSUSPEND = 107 + SYS_SETRESUID = 108 + SYS_GETRESUID = 109 + SYS_SETRESGID = 110 + SYS_GETRESGID = 111 + SYS_RECVMSG = 113 + SYS_SENDMSG = 114 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_GETCWD = 119 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_RECVFROM = 125 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_TRUNCATE = 129 + SYS_FTRUNCATE = 130 + SYS_FLOCK = 131 + SYS_LSTAT64 = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_STAT64 = 139 + SYS_SENDFILE64 = 140 + SYS_GETPEERNAME = 141 + SYS_FUTEX = 142 + SYS_GETTID = 143 + SYS_GETRLIMIT = 144 + SYS_SETRLIMIT = 145 + SYS_PIVOT_ROOT = 146 + SYS_PRCTL = 147 + SYS_PCICONFIG_READ = 148 + SYS_PCICONFIG_WRITE = 149 + SYS_GETSOCKNAME = 150 + SYS_INOTIFY_INIT = 151 + SYS_INOTIFY_ADD_WATCH = 152 + SYS_POLL = 153 + SYS_GETDENTS64 = 154 + SYS_INOTIFY_RM_WATCH = 156 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UMOUNT = 159 + SYS_SCHED_SET_AFFINITY = 160 + SYS_SCHED_GET_AFFINITY = 161 + SYS_GETDOMAINNAME = 162 + SYS_SETDOMAINNAME = 163 + SYS_UTRAP_INSTALL = 164 + SYS_QUOTACTL = 165 + SYS_SET_TID_ADDRESS = 166 + SYS_MOUNT = 167 + SYS_USTAT = 168 + SYS_SETXATTR = 169 + SYS_LSETXATTR = 170 + SYS_FSETXATTR = 171 + SYS_GETXATTR = 172 + SYS_LGETXATTR = 173 + SYS_GETDENTS = 174 + SYS_SETSID = 175 + SYS_FCHDIR = 176 + SYS_FGETXATTR = 177 + SYS_LISTXATTR = 178 + SYS_LLISTXATTR = 179 + SYS_FLISTXATTR = 180 + SYS_REMOVEXATTR = 181 + SYS_LREMOVEXATTR = 182 + SYS_SIGPENDING = 183 + SYS_QUERY_MODULE = 184 + SYS_SETPGID = 185 + SYS_FREMOVEXATTR = 186 + SYS_TKILL = 187 + SYS_EXIT_GROUP = 188 + SYS_UNAME = 189 + SYS_INIT_MODULE = 190 + SYS_PERSONALITY = 191 + SYS_REMAP_FILE_PAGES = 192 + SYS_EPOLL_CREATE = 193 + SYS_EPOLL_CTL = 194 + SYS_EPOLL_WAIT = 195 + SYS_IOPRIO_SET = 196 + SYS_GETPPID = 197 + SYS_SIGACTION = 198 + SYS_SGETMASK = 199 + SYS_SSETMASK = 200 + SYS_SIGSUSPEND = 201 + SYS_OLDLSTAT = 202 + SYS_USELIB = 203 + SYS_READDIR = 204 + SYS_READAHEAD = 205 + SYS_SOCKETCALL = 206 + SYS_SYSLOG = 207 + SYS_LOOKUP_DCOOKIE = 208 + SYS_FADVISE64 = 209 + SYS_FADVISE64_64 = 210 + SYS_TGKILL = 211 + SYS_WAITPID = 212 + SYS_SWAPOFF = 213 + SYS_SYSINFO = 214 + SYS_IPC = 215 + SYS_SIGRETURN = 216 + SYS_CLONE = 217 + SYS_IOPRIO_GET = 218 + SYS_ADJTIMEX = 219 + SYS_SIGPROCMASK = 220 + SYS_CREATE_MODULE = 221 + SYS_DELETE_MODULE = 222 + SYS_GET_KERNEL_SYMS = 223 + SYS_GETPGID = 224 + SYS_BDFLUSH = 225 + SYS_SYSFS = 226 + SYS_AFS_SYSCALL = 227 + SYS_SETFSUID = 228 + SYS_SETFSGID = 229 + SYS__NEWSELECT = 230 + SYS_SPLICE = 232 + SYS_STIME = 233 + SYS_STATFS64 = 234 + SYS_FSTATFS64 = 235 + SYS__LLSEEK = 236 + SYS_MLOCK = 237 + SYS_MUNLOCK = 238 + SYS_MLOCKALL = 239 + SYS_MUNLOCKALL = 240 + SYS_SCHED_SETPARAM = 241 + SYS_SCHED_GETPARAM = 242 + SYS_SCHED_SETSCHEDULER = 243 + SYS_SCHED_GETSCHEDULER = 244 + SYS_SCHED_YIELD = 245 + SYS_SCHED_GET_PRIORITY_MAX = 246 + SYS_SCHED_GET_PRIORITY_MIN = 247 + SYS_SCHED_RR_GET_INTERVAL = 248 + SYS_NANOSLEEP = 249 + SYS_MREMAP = 250 + SYS__SYSCTL = 251 + SYS_GETSID = 252 + SYS_FDATASYNC = 253 + SYS_NFSSERVCTL = 254 + SYS_SYNC_FILE_RANGE = 255 + SYS_CLOCK_SETTIME = 256 + SYS_CLOCK_GETTIME = 257 + SYS_CLOCK_GETRES = 258 + SYS_CLOCK_NANOSLEEP = 259 + SYS_SCHED_GETAFFINITY = 260 + SYS_SCHED_SETAFFINITY = 261 + SYS_TIMER_SETTIME = 262 + SYS_TIMER_GETTIME = 263 + SYS_TIMER_GETOVERRUN = 264 + SYS_TIMER_DELETE = 265 + SYS_TIMER_CREATE = 266 + SYS_VSERVER = 267 + SYS_IO_SETUP = 268 + SYS_IO_DESTROY = 269 + SYS_IO_SUBMIT = 270 + SYS_IO_CANCEL = 271 + SYS_IO_GETEVENTS = 272 + SYS_MQ_OPEN = 273 + SYS_MQ_UNLINK = 274 + SYS_MQ_TIMEDSEND = 275 + SYS_MQ_TIMEDRECEIVE = 276 + SYS_MQ_NOTIFY = 277 + SYS_MQ_GETSETATTR = 278 + SYS_WAITID = 279 + SYS_TEE = 280 + SYS_ADD_KEY = 281 + SYS_REQUEST_KEY = 282 + SYS_KEYCTL = 283 + SYS_OPENAT = 284 + SYS_MKDIRAT = 285 + SYS_MKNODAT = 286 + SYS_FCHOWNAT = 287 + SYS_FUTIMESAT = 288 + SYS_FSTATAT64 = 289 + SYS_UNLINKAT = 290 + SYS_RENAMEAT = 291 + SYS_LINKAT = 292 + SYS_SYMLINKAT = 293 + SYS_READLINKAT = 294 + SYS_FCHMODAT = 295 + SYS_FACCESSAT = 296 + SYS_PSELECT6 = 297 + SYS_PPOLL = 298 + SYS_UNSHARE = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_GET_ROBUST_LIST = 301 + SYS_MIGRATE_PAGES = 302 + SYS_MBIND = 303 + SYS_GET_MEMPOLICY = 304 + SYS_SET_MEMPOLICY = 305 + SYS_KEXEC_LOAD = 306 + SYS_MOVE_PAGES = 307 + SYS_GETCPU = 308 + SYS_EPOLL_PWAIT = 309 + SYS_UTIMENSAT = 310 + SYS_SIGNALFD = 311 + SYS_TIMERFD_CREATE = 312 + SYS_EVENTFD = 313 + SYS_FALLOCATE = 314 + SYS_TIMERFD_SETTIME = 315 + SYS_TIMERFD_GETTIME = 316 + SYS_SIGNALFD4 = 317 + SYS_EVENTFD2 = 318 + SYS_EPOLL_CREATE1 = 319 + SYS_DUP3 = 320 + SYS_PIPE2 = 321 + SYS_INOTIFY_INIT1 = 322 + SYS_ACCEPT4 = 323 + SYS_PREADV = 324 + SYS_PWRITEV = 325 + SYS_RT_TGSIGQUEUEINFO = 326 + SYS_PERF_EVENT_OPEN = 327 + SYS_RECVMMSG = 328 + SYS_FANOTIFY_INIT = 329 + SYS_FANOTIFY_MARK = 330 + SYS_PRLIMIT64 = 331 + SYS_NAME_TO_HANDLE_AT = 332 + SYS_OPEN_BY_HANDLE_AT = 333 + SYS_CLOCK_ADJTIME = 334 + SYS_SYNCFS = 335 + SYS_SENDMMSG = 336 + SYS_SETNS = 337 + SYS_PROCESS_VM_READV = 338 + SYS_PROCESS_VM_WRITEV = 339 + SYS_KERN_FEATURES = 340 + SYS_KCMP = 341 + SYS_FINIT_MODULE = 342 + SYS_SCHED_SETATTR = 343 + SYS_SCHED_GETATTR = 344 + SYS_RENAMEAT2 = 345 + SYS_SECCOMP = 346 + SYS_GETRANDOM = 347 + SYS_MEMFD_CREATE = 348 + SYS_BPF = 349 + SYS_EXECVEAT = 350 + SYS_MEMBARRIER = 351 + SYS_USERFAULTFD = 352 + SYS_BIND = 353 + SYS_LISTEN = 354 + SYS_SETSOCKOPT = 355 + SYS_MLOCK2 = 356 + SYS_COPY_FILE_RANGE = 357 + SYS_PREADV2 = 358 + SYS_PWRITEV2 = 359 + SYS_STATX = 360 + SYS_IO_PGETEVENTS = 361 + SYS_PKEY_MPROTECT = 362 + SYS_PKEY_ALLOC = 363 + SYS_PKEY_FREE = 364 + SYS_RSEQ = 365 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go new file mode 100644 index 0000000..e66a8c9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -0,0 +1,274 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go new file mode 100644 index 0000000..42c788f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -0,0 +1,274 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go new file mode 100644 index 0000000..0a07571 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -0,0 +1,274 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go new file mode 100644 index 0000000..0291c09 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go @@ -0,0 +1,274 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; DO NOT EDIT. + +// +build arm64,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go new file mode 100644 index 0000000..b0207d1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go new file mode 100644 index 0000000..f0dec6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go new file mode 100644 index 0000000..33d1dc5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go new file mode 100644 index 0000000..fe2b689 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go @@ -0,0 +1,217 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go new file mode 100644 index 0000000..5c08d57 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -0,0 +1,220 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_MSYSCALL = 37 // { int sys_msyscall(void *addr, size_t len); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS___REALPATH = 115 // { int sys___realpath(const char *pathname, char *resolved); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS___TMPFD = 164 // { int sys___tmpfd(int flags); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go new file mode 100644 index 0000000..295859c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -0,0 +1,353 @@ +// cgo -godefs types_aix.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc,aix + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type off64 int64 +type off int32 +type Mode_t uint32 + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int32 + +type Tms struct{} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint32 + +type Stat_t struct { + Dev uint32 + Ino uint32 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Size int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int32 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint32 + Ino uint32 + Reclen uint16 + Namlen uint16 + Name [256]uint8 +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [1023]uint8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 +) + +const ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [2048]int32 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Losigs uint32 + Hisigs uint32 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint32 + Blocks uint32 + Bfree uint32 + Bavail uint32 + Files uint32 + Ffree uint32 + Fsid Fsid_t + Vfstype int32 + Fsize uint32 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 +} + +const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go new file mode 100644 index 0000000..a9ee0ff --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -0,0 +1,357 @@ +// cgo -godefs types_aix.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64,aix + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type off64 int64 +type off int64 +type Mode_t uint32 + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int64 + +type Tms struct{} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint64 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint64 + Ssize int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 + Padto_ll uint32 + Size int64 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint64 + Ino uint64 + Reclen uint16 + Namlen uint16 + Name [256]uint8 + _ [4]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [1023]uint8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 +) + +const ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Set [4]uint64 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid64_t + Vfstype int32 + Fsize uint64 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 + _ [4]byte +} + +const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go new file mode 100644 index 0000000..725b4be --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go @@ -0,0 +1,516 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,darwin + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timeval32 struct{} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Reserved [8]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint32 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + Contigbytes int64 + Devoffset int64 +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go new file mode 100644 index 0000000..080ffce --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -0,0 +1,521 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,darwin + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go new file mode 100644 index 0000000..f2a77bc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go @@ -0,0 +1,516 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,darwin + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timeval32 struct{} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Reserved [8]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint32 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + Contigbytes int64 + Devoffset int64 +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go new file mode 100644 index 0000000..c949242 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -0,0 +1,521 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,darwin + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go new file mode 100644 index 0000000..85506a0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -0,0 +1,470 @@ +// cgo -godefs types_dragonfly.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,dragonfly + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Ino uint64 + Nlink uint32 + Dev uint32 + Mode uint16 + _1 uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + _ uint32 + Flags uint32 + Gen uint32 + Lspare int32 + Blksize int64 + Qspare2 int64 +} + +type Statfs_t struct { + Spare2 int64 + Bsize int64 + Iosize int64 + Blocks int64 + Bfree int64 + Bavail int64 + Files int64 + Ffree int64 + Fsid Fsid + Owner uint32 + Type int32 + Flags int32 + Syncwrites int64 + Asyncwrites int64 + Fstypename [16]byte + Mntonname [80]byte + Syncreads int64 + Asyncreads int64 + Spares1 int16 + Mntfromname [80]byte + Spares2 int16 + Spare [2]int64 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Namlen uint16 + Type uint8 + Unused1 uint8 + Unused2 uint32 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + SizeofIfMsghdr = 0xb0 + SizeofIfData = 0xa0 + SizeofIfaMsghdr = 0x18 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Data IfData +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Mtu uint64 + Metric uint64 + Link_state uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Oqdrops uint64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Addrflags int32 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Pksent uint64 + Expire uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Recvpipe uint64 + Hopcount uint64 + Mssopt uint16 + Pad uint16 + Msl uint64 + Iwmaxsegs uint64 + Iwcapsegs uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = 0xfffafdcd + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go new file mode 100644 index 0000000..3e9dad3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -0,0 +1,710 @@ +// cgo -godefs types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,freebsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + _ int32 + Atim Timespec + _ int32 + Mtim Timespec + _ int32 + Ctim Timespec + _ int32 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type stat_freebsd11_t struct { + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec + _ [8]byte +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type statfs_freebsd11_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type dirent_freebsd11 struct { + Fileno uint32 + Reclen uint16 + Type uint8 + Namlen uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + _ [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Fs uint32 + Es uint32 + Ds uint32 + Edi uint32 + Esi uint32 + Ebp uint32 + Isp uint32 + Ebx uint32 + Edx uint32 + Ecx uint32 + Eax uint32 + Trapno uint32 + Err uint32 + Eip uint32 + Cs uint32 + Eflags uint32 + Esp uint32 + Ss uint32 + Gs uint32 +} + +type FpReg struct { + Env [7]uint32 + Acc [8][10]uint8 + Ex_sw uint32 + Pad [64]uint8 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x60 + sizeofIfData = 0x98 + SizeofIfData = 0x50 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + 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 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + Epoch int32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x800 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go new file mode 100644 index 0000000..e00e615 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -0,0 +1,713 @@ +// cgo -godefs types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type stat_freebsd11_t struct { + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type statfs_freebsd11_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type dirent_freebsd11 struct { + Fileno uint32 + Reclen uint16 + Type uint8 + Namlen uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R15 int64 + R14 int64 + R13 int64 + R12 int64 + R11 int64 + R10 int64 + R9 int64 + R8 int64 + Rdi int64 + Rsi int64 + Rbp int64 + Rbx int64 + Rdx int64 + Rcx int64 + Rax int64 + Trapno uint32 + Fs uint16 + Gs uint16 + Err uint32 + Es uint16 + Ds uint16 + Rip int64 + Cs int64 + Rflags int64 + Rsp int64 + Ss int64 +} + +type FpReg struct { + Env [4]uint64 + Acc [8][16]uint8 + Xacc [16][16]uint8 + Spare [12]uint64 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + 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 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x800 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go new file mode 100644 index 0000000..5da13c8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -0,0 +1,694 @@ +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,freebsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type stat_freebsd11_t struct { + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type statfs_freebsd11_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type dirent_freebsd11 struct { + Fileno uint32 + Reclen uint16 + Type uint8 + Namlen uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + X_reason [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R [13]uint32 + R_sp uint32 + R_lr uint32 + R_pc uint32 + R_cpsr uint32 +} + +type FpReg struct { + Fpr_fpsr uint32 + Fpr [8][3]uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x70 + sizeofIfData = 0x98 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + 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 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + _ [4]byte + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x800 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go new file mode 100644 index 0000000..995ecf9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -0,0 +1,691 @@ +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type stat_freebsd11_t struct { + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Btim Timespec +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type statfs_freebsd11_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type dirent_freebsd11 struct { + Fileno uint32 + Reclen uint16 + Type uint8 + Namlen uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 +) + +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + X [30]uint64 + Lr uint64 + Sp uint64 + Elr uint64 + Spsr uint32 + _ [4]byte +} + +type FpReg struct { + Q [32][16]uint8 + Sr uint32 + Cr uint32 + _ [8]byte +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + 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 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x800 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go new file mode 100644 index 0000000..9f3b1a4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -0,0 +1,3682 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +const ( + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + + _C_long_long int64 +) + +type ItimerSpec struct { + Interval Timespec + Value Timespec +} + +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type StatxTimestamp struct { + Sec int64 + Nsec uint32 + _ int32 +} + +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 + _ uint64 + _ [12]uint64 +} + +type Fsid struct { + Val [2]int32 +} + +type FileCloneRange struct { + Src_fd int64 + Src_offset uint64 + Src_length uint64 + Dest_offset uint64 +} + +type FileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Dest_count uint16 + Reserved1 uint16 + Reserved2 uint32 +} + +type FscryptPolicy struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptKey struct { + Mode uint32 + Raw [64]uint8 + Size uint32 +} + +type FscryptPolicyV1 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptPolicyV2 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + _ [4]uint8 + Master_key_identifier [16]uint8 +} + +type FscryptGetPolicyExArg struct { + Size uint64 + Policy [24]byte +} + +type FscryptKeySpecifier struct { + Type uint32 + _ uint32 + U [32]byte +} + +type FscryptAddKeyArg struct { + Key_spec FscryptKeySpecifier + Raw_size uint32 + Key_id uint32 + _ [8]uint32 +} + +type FscryptRemoveKeyArg struct { + Key_spec FscryptKeySpecifier + Removal_status_flags uint32 + _ [5]uint32 +} + +type FscryptGetKeyStatusArg struct { + Key_spec FscryptKeySpecifier + _ [6]uint32 + Status uint32 + Status_flags uint32 + User_count uint32 + _ [13]uint32 +} + +type DmIoctl struct { + Version [3]uint32 + Data_size uint32 + Data_start uint32 + Target_count uint32 + Open_count int32 + Flags uint32 + Event_nr uint32 + _ uint32 + Dev uint64 + Name [128]byte + Uuid [129]byte + Data [7]byte +} + +type DmTargetSpec struct { + Sector_start uint64 + Length uint64 + Status int32 + Next uint32 + Target_type [16]byte +} + +type DmTargetDeps struct { + Count uint32 + _ uint32 +} + +type DmTargetVersions struct { + Next uint32 + Version [3]uint32 +} + +type DmTargetMsg struct { + Sector uint64 +} + +const ( + SizeofDmIoctl = 0x138 + SizeofDmTargetSpec = 0x28 +) + +type KeyctlDHParams struct { + Private int32 + Prime int32 + Base int32 +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrL2 struct { + Family uint16 + Psm uint16 + Bdaddr [6]uint8 + Cid uint16 + Bdaddr_type uint8 + _ [1]byte +} + +type RawSockaddrRFCOMM struct { + Family uint16 + Bdaddr [6]uint8 + Channel uint8 + _ [1]byte +} + +type RawSockaddrCAN struct { + Family uint16 + Ifindex int32 + Addr [16]byte +} + +type RawSockaddrALG struct { + Family uint16 + Type [14]uint8 + Feat uint32 + Mask uint32 + Name [64]uint8 +} + +type RawSockaddrVM struct { + Family uint16 + Reserved1 uint16 + Port uint32 + Cid uint32 + Zero [4]uint8 +} + +type RawSockaddrXDP struct { + Family uint16 + Flags uint16 + Ifindex uint32 + Queue_id uint32 + Shared_umem_fd uint32 +} + +type RawSockaddrPPPoX [0x1e]byte + +type RawSockaddrTIPC struct { + Family uint16 + Addrtype uint8 + Scope int8 + Addr [12]byte +} + +type RawSockaddrL2TPIP struct { + Family uint16 + Unused uint16 + Addr [4]byte /* in_addr */ + Conn_id uint32 + _ [4]uint8 +} + +type RawSockaddrL2TPIP6 struct { + Family uint16 + Unused uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + Conn_id uint32 +} + +type RawSockaddrIUCV struct { + Family uint16 + Port uint16 + Addr uint32 + Nodeid [8]int8 + User_id [8]int8 + Name [8]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type PacketMreq struct { + Ifindex int32 + Type uint16 + Alen uint16 + Address [8]uint8 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type CanFilter struct { + Id uint32 + Mask uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrL2 = 0xe + SizeofSockaddrRFCOMM = 0xa + SizeofSockaddrCAN = 0x18 + SizeofSockaddrALG = 0x58 + SizeofSockaddrVM = 0x10 + SizeofSockaddrXDP = 0x10 + SizeofSockaddrPPPoX = 0x1e + SizeofSockaddrTIPC = 0x10 + SizeofSockaddrL2TPIP = 0x10 + SizeofSockaddrL2TPIP6 = 0x20 + SizeofSockaddrIUCV = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 + SizeofCanFilter = 0x8 +) + +const ( + NDA_UNSPEC = 0x0 + NDA_DST = 0x1 + NDA_LLADDR = 0x2 + NDA_CACHEINFO = 0x3 + NDA_PROBES = 0x4 + NDA_VLAN = 0x5 + NDA_PORT = 0x6 + NDA_VNI = 0x7 + NDA_IFINDEX = 0x8 + NDA_MASTER = 0x9 + NDA_LINK_NETNSID = 0xa + NDA_SRC_VNI = 0xb + NTF_USE = 0x1 + NTF_SELF = 0x2 + NTF_MASTER = 0x4 + NTF_PROXY = 0x8 + NTF_EXT_LEARNED = 0x10 + NTF_OFFLOADED = 0x20 + NTF_ROUTER = 0x80 + NUD_INCOMPLETE = 0x1 + NUD_REACHABLE = 0x2 + NUD_STALE = 0x4 + NUD_DELAY = 0x8 + NUD_PROBE = 0x10 + NUD_FAILED = 0x20 + NUD_NOARP = 0x40 + NUD_PERMANENT = 0x80 + NUD_NONE = 0x0 + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFA_FLAGS = 0x8 + IFA_RT_PRIORITY = 0x9 + IFA_TARGET_NETNSID = 0xa + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofIfaCacheinfo = 0x10 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 + SizeofNdMsg = 0xc +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + _ uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type IfaCacheinfo struct { + Prefered uint32 + Valid uint32 + Cstamp uint32 + Tstamp uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +type NdUseroptmsg struct { + Family uint8 + Pad1 uint8 + Opts_len uint16 + Ifindex int32 + Icmp_type uint8 + Icmp_code uint8 + Pad2 uint16 + Pad3 uint32 +} + +type NdMsg struct { + Family uint8 + Pad1 uint8 + Pad2 uint16 + Ifindex int32 + State uint16 + Flags uint8 + Type uint8 +} + +const ( + SizeofSockFilter = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +const SI_LOAD_SHIFT = 0x10 + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +const ( + AT_EMPTY_PATH = 0x1000 + AT_FDCWD = -0x64 + AT_NO_AUTOMOUNT = 0x800 + AT_REMOVEDIR = 0x200 + + AT_STATX_SYNC_AS_STAT = 0x0 + AT_STATX_FORCE_SYNC = 0x2000 + AT_STATX_DONT_SYNC = 0x4000 + + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 +) + +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + Addr_lsb uint16 + _ uint16 + Syscall int32 + Call_addr uint64 + Arch uint32 + _ [28]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + TASKSTATS_CMD_UNSPEC = 0x0 + TASKSTATS_CMD_GET = 0x1 + TASKSTATS_CMD_NEW = 0x2 + TASKSTATS_TYPE_UNSPEC = 0x0 + TASKSTATS_TYPE_PID = 0x1 + TASKSTATS_TYPE_TGID = 0x2 + TASKSTATS_TYPE_STATS = 0x3 + TASKSTATS_TYPE_AGGR_PID = 0x4 + TASKSTATS_TYPE_AGGR_TGID = 0x5 + TASKSTATS_TYPE_NULL = 0x6 + TASKSTATS_CMD_ATTR_UNSPEC = 0x0 + TASKSTATS_CMD_ATTR_PID = 0x1 + TASKSTATS_CMD_ATTR_TGID = 0x2 + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 +) + +type CGroupStats struct { + Sleeping uint64 + Running uint64 + Stopped uint64 + Uninterruptible uint64 + Io_wait uint64 +} + +const ( + CGROUPSTATS_CMD_UNSPEC = 0x3 + CGROUPSTATS_CMD_GET = 0x4 + CGROUPSTATS_CMD_NEW = 0x5 + CGROUPSTATS_TYPE_UNSPEC = 0x0 + CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 + CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 + CGROUPSTATS_CMD_ATTR_FD = 0x1 +) + +type Genlmsghdr struct { + Cmd uint8 + Version uint8 + Reserved uint16 +} + +const ( + CTRL_CMD_UNSPEC = 0x0 + CTRL_CMD_NEWFAMILY = 0x1 + CTRL_CMD_DELFAMILY = 0x2 + CTRL_CMD_GETFAMILY = 0x3 + CTRL_CMD_NEWOPS = 0x4 + CTRL_CMD_DELOPS = 0x5 + CTRL_CMD_GETOPS = 0x6 + CTRL_CMD_NEWMCAST_GRP = 0x7 + CTRL_CMD_DELMCAST_GRP = 0x8 + CTRL_CMD_GETMCAST_GRP = 0x9 + CTRL_ATTR_UNSPEC = 0x0 + CTRL_ATTR_FAMILY_ID = 0x1 + CTRL_ATTR_FAMILY_NAME = 0x2 + CTRL_ATTR_VERSION = 0x3 + CTRL_ATTR_HDRSIZE = 0x4 + CTRL_ATTR_MAXATTR = 0x5 + CTRL_ATTR_OPS = 0x6 + CTRL_ATTR_MCAST_GROUPS = 0x7 + CTRL_ATTR_OP_UNSPEC = 0x0 + CTRL_ATTR_OP_ID = 0x1 + CTRL_ATTR_OP_FLAGS = 0x2 + CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 + CTRL_ATTR_MCAST_GRP_NAME = 0x1 + CTRL_ATTR_MCAST_GRP_ID = 0x2 +) + +const ( + _CPU_SETSIZE = 0x400 +) + +const ( + BDADDR_BREDR = 0x0 + BDADDR_LE_PUBLIC = 0x1 + BDADDR_LE_RANDOM = 0x2 +) + +type PerfEventAttr struct { + Type uint32 + Size uint32 + Config uint64 + Sample uint64 + Sample_type uint64 + Read_format uint64 + Bits uint64 + Wakeup uint32 + Bp_type uint32 + Ext1 uint64 + Ext2 uint64 + Branch_sample_type uint64 + Sample_regs_user uint64 + Sample_stack_user uint32 + Clockid int32 + Sample_regs_intr uint64 + Aux_watermark uint32 + Sample_max_stack uint16 + _ uint16 +} + +type PerfEventMmapPage struct { + Version uint32 + Compat_version uint32 + Lock uint32 + Index uint32 + Offset int64 + Time_enabled uint64 + Time_running uint64 + Capabilities uint64 + Pmc_width uint16 + Time_shift uint16 + Time_mult uint32 + Time_offset uint64 + Time_zero uint64 + Size uint32 + _ uint32 + Time_cycles uint64 + Time_mask uint64 + _ [928]uint8 + Data_head uint64 + Data_tail uint64 + Data_offset uint64 + Data_size uint64 + Aux_head uint64 + Aux_tail uint64 + Aux_offset uint64 + Aux_size uint64 +} + +const ( + PerfBitDisabled uint64 = CBitFieldMaskBit0 + PerfBitInherit = CBitFieldMaskBit1 + PerfBitPinned = CBitFieldMaskBit2 + PerfBitExclusive = CBitFieldMaskBit3 + PerfBitExcludeUser = CBitFieldMaskBit4 + PerfBitExcludeKernel = CBitFieldMaskBit5 + PerfBitExcludeHv = CBitFieldMaskBit6 + PerfBitExcludeIdle = CBitFieldMaskBit7 + PerfBitMmap = CBitFieldMaskBit8 + PerfBitComm = CBitFieldMaskBit9 + PerfBitFreq = CBitFieldMaskBit10 + PerfBitInheritStat = CBitFieldMaskBit11 + PerfBitEnableOnExec = CBitFieldMaskBit12 + PerfBitTask = CBitFieldMaskBit13 + PerfBitWatermark = CBitFieldMaskBit14 + PerfBitPreciseIPBit1 = CBitFieldMaskBit15 + PerfBitPreciseIPBit2 = CBitFieldMaskBit16 + PerfBitMmapData = CBitFieldMaskBit17 + PerfBitSampleIDAll = CBitFieldMaskBit18 + PerfBitExcludeHost = CBitFieldMaskBit19 + PerfBitExcludeGuest = CBitFieldMaskBit20 + PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 + PerfBitExcludeCallchainUser = CBitFieldMaskBit22 + PerfBitMmap2 = CBitFieldMaskBit23 + PerfBitCommExec = CBitFieldMaskBit24 + PerfBitUseClockID = CBitFieldMaskBit25 + PerfBitContextSwitch = CBitFieldMaskBit26 +) + +const ( + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + PERF_TYPE_MAX = 0x6 + PERF_COUNT_HW_CPU_CYCLES = 0x0 + PERF_COUNT_HW_INSTRUCTIONS = 0x1 + PERF_COUNT_HW_CACHE_REFERENCES = 0x2 + PERF_COUNT_HW_CACHE_MISSES = 0x3 + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 + PERF_COUNT_HW_BRANCH_MISSES = 0x5 + PERF_COUNT_HW_BUS_CYCLES = 0x6 + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 + PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 + PERF_COUNT_HW_MAX = 0xa + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + PERF_COUNT_HW_CACHE_MAX = 0x7 + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + PERF_COUNT_HW_CACHE_OP_MAX = 0x3 + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + PERF_COUNT_SW_BPF_OUTPUT = 0xa + PERF_COUNT_SW_MAX = 0xb + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + PERF_SAMPLE_REGS_USER = 0x1000 + PERF_SAMPLE_STACK_USER = 0x2000 + PERF_SAMPLE_WEIGHT = 0x4000 + PERF_SAMPLE_DATA_SRC = 0x8000 + PERF_SAMPLE_IDENTIFIER = 0x10000 + PERF_SAMPLE_TRANSACTION = 0x20000 + PERF_SAMPLE_REGS_INTR = 0x40000 + PERF_SAMPLE_PHYS_ADDR = 0x80000 + PERF_SAMPLE_AUX = 0x100000 + PERF_SAMPLE_CGROUP = 0x200000 + PERF_SAMPLE_MAX = 0x400000 + PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 + PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 + PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 + PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc + PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 + PERF_SAMPLE_BRANCH_IN_TX = 0x100 + PERF_SAMPLE_BRANCH_NO_TX = 0x200 + PERF_SAMPLE_BRANCH_COND = 0x400 + PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 + PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 + PERF_SAMPLE_BRANCH_CALL = 0x2000 + PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 + PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 + PERF_SAMPLE_BRANCH_MAX = 0x40000 + PERF_BR_UNKNOWN = 0x0 + PERF_BR_COND = 0x1 + PERF_BR_UNCOND = 0x2 + PERF_BR_IND = 0x3 + PERF_BR_CALL = 0x4 + PERF_BR_IND_CALL = 0x5 + PERF_BR_RET = 0x6 + PERF_BR_SYSCALL = 0x7 + PERF_BR_SYSRET = 0x8 + PERF_BR_COND_CALL = 0x9 + PERF_BR_COND_RET = 0xa + PERF_BR_MAX = 0xb + PERF_SAMPLE_REGS_ABI_NONE = 0x0 + PERF_SAMPLE_REGS_ABI_32 = 0x1 + PERF_SAMPLE_REGS_ABI_64 = 0x2 + PERF_TXN_ELISION = 0x1 + PERF_TXN_TRANSACTION = 0x2 + PERF_TXN_SYNC = 0x4 + PERF_TXN_ASYNC = 0x8 + PERF_TXN_RETRY = 0x10 + PERF_TXN_CONFLICT = 0x20 + PERF_TXN_CAPACITY_WRITE = 0x40 + PERF_TXN_CAPACITY_READ = 0x80 + PERF_TXN_MAX = 0x100 + PERF_TXN_ABORT_MASK = -0x100000000 + PERF_TXN_ABORT_SHIFT = 0x20 + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + PERF_FORMAT_MAX = 0x10 + PERF_IOC_FLAG_GROUP = 0x1 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + PERF_RECORD_MMAP2 = 0xa + PERF_RECORD_AUX = 0xb + PERF_RECORD_ITRACE_START = 0xc + PERF_RECORD_LOST_SAMPLES = 0xd + PERF_RECORD_SWITCH = 0xe + PERF_RECORD_SWITCH_CPU_WIDE = 0xf + PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_KSYMBOL = 0x11 + PERF_RECORD_BPF_EVENT = 0x12 + PERF_RECORD_CGROUP = 0x13 + PERF_RECORD_TEXT_POKE = 0x14 + PERF_RECORD_MAX = 0x15 + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 + PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 + PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 + PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 + PERF_BPF_EVENT_UNKNOWN = 0x0 + PERF_BPF_EVENT_PROG_LOAD = 0x1 + PERF_BPF_EVENT_PROG_UNLOAD = 0x2 + PERF_BPF_EVENT_MAX = 0x3 + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + PERF_CONTEXT_MAX = -0xfff +) + +type TCPMD5Sig struct { + Addr SockaddrStorage + Flags uint8 + Prefixlen uint8 + Keylen uint16 + _ uint32 + Key [80]uint8 +} + +type HDDriveCmdHdr struct { + Command uint8 + Number uint8 + Feature uint8 + Count uint8 +} + +type HDDriveID struct { + Config uint16 + Cyls uint16 + Reserved2 uint16 + Heads uint16 + Track_bytes uint16 + Sector_bytes uint16 + Sectors uint16 + Vendor0 uint16 + Vendor1 uint16 + Vendor2 uint16 + Serial_no [20]uint8 + Buf_type uint16 + Buf_size uint16 + Ecc_bytes uint16 + Fw_rev [8]uint8 + Model [40]uint8 + Max_multsect uint8 + Vendor3 uint8 + Dword_io uint16 + Vendor4 uint8 + Capability uint8 + Reserved50 uint16 + Vendor5 uint8 + TPIO uint8 + Vendor6 uint8 + TDMA uint8 + Field_valid uint16 + Cur_cyls uint16 + Cur_heads uint16 + Cur_sectors uint16 + Cur_capacity0 uint16 + Cur_capacity1 uint16 + Multsect uint8 + Multsect_valid uint8 + Lba_capacity uint32 + Dma_1word uint16 + Dma_mword uint16 + Eide_pio_modes uint16 + Eide_dma_min uint16 + Eide_dma_time uint16 + Eide_pio uint16 + Eide_pio_iordy uint16 + Words69_70 [2]uint16 + Words71_74 [4]uint16 + Queue_depth uint16 + Words76_79 [4]uint16 + Major_rev_num uint16 + Minor_rev_num uint16 + Command_set_1 uint16 + Command_set_2 uint16 + Cfsse uint16 + Cfs_enable_1 uint16 + Cfs_enable_2 uint16 + Csf_default uint16 + Dma_ultra uint16 + Trseuc uint16 + TrsEuc uint16 + CurAPMvalues uint16 + Mprc uint16 + Hw_config uint16 + Acoustic uint16 + Msrqs uint16 + Sxfert uint16 + Sal uint16 + Spg uint32 + Lba_capacity_2 uint64 + Words104_125 [22]uint16 + Last_lun uint16 + Word127 uint16 + Dlf uint16 + Csfo uint16 + Words130_155 [26]uint16 + Word156 uint16 + Words157_159 [3]uint16 + Cfa_power uint16 + Words161_175 [15]uint16 + Words176_205 [30]uint16 + Words206_254 [49]uint16 + Integrity_word uint16 +} + +const ( + ST_MANDLOCK = 0x40 + ST_NOATIME = 0x400 + ST_NODEV = 0x4 + ST_NODIRATIME = 0x800 + ST_NOEXEC = 0x8 + ST_NOSUID = 0x2 + ST_RDONLY = 0x1 + ST_RELATIME = 0x1000 + ST_SYNCHRONOUS = 0x10 +) + +type Tpacket2Hdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Nsec uint32 + Vlan_tci uint16 + Vlan_tpid uint16 + _ [4]uint8 +} + +type Tpacket3Hdr struct { + Next_offset uint32 + Sec uint32 + Nsec uint32 + Snaplen uint32 + Len uint32 + Status uint32 + Mac uint16 + Net uint16 + Hv1 TpacketHdrVariant1 + _ [8]uint8 +} + +type TpacketHdrVariant1 struct { + Rxhash uint32 + Vlan_tci uint32 + Vlan_tpid uint16 + _ uint16 +} + +type TpacketBlockDesc struct { + Version uint32 + To_priv uint32 + Hdr [40]byte +} + +type TpacketBDTS struct { + Sec uint32 + Usec uint32 +} + +type TpacketHdrV1 struct { + Block_status uint32 + Num_pkts uint32 + Offset_to_first_pkt uint32 + Blk_len uint32 + Seq_num uint64 + Ts_first_pkt TpacketBDTS + Ts_last_pkt TpacketBDTS +} + +type TpacketReq struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 +} + +type TpacketReq3 struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 + Retire_blk_tov uint32 + Sizeof_priv uint32 + Feature_req_word uint32 +} + +type TpacketStats struct { + Packets uint32 + Drops uint32 +} + +type TpacketStatsV3 struct { + Packets uint32 + Drops uint32 + Freeze_q_cnt uint32 +} + +type TpacketAuxdata struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Vlan_tci uint16 + Vlan_tpid uint16 +} + +const ( + TPACKET_V1 = 0x0 + TPACKET_V2 = 0x1 + TPACKET_V3 = 0x2 +) + +const ( + SizeofTpacket2Hdr = 0x20 + SizeofTpacket3Hdr = 0x30 + + SizeofTpacketStats = 0x8 + SizeofTpacketStatsV3 = 0xc +) + +const ( + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_TARGET_NETNSID = 0x2e + IFLA_CARRIER_UP_COUNT = 0x2f + IFLA_CARRIER_DOWN_COUNT = 0x30 + IFLA_NEW_IFINDEX = 0x31 + IFLA_MIN_MTU = 0x32 + IFLA_MAX_MTU = 0x33 + IFLA_PROP_LIST = 0x34 + IFLA_ALT_IFNAME = 0x35 + IFLA_PERM_ADDRESS = 0x36 + IFLA_PROTO_DOWN_REASON = 0x37 + IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 + IFLA_PROTO_DOWN_REASON_MASK = 0x1 + IFLA_PROTO_DOWN_REASON_VALUE = 0x2 + IFLA_PROTO_DOWN_REASON_MAX = 0x2 + IFLA_INET_UNSPEC = 0x0 + IFLA_INET_CONF = 0x1 + IFLA_INET6_UNSPEC = 0x0 + IFLA_INET6_FLAGS = 0x1 + IFLA_INET6_CONF = 0x2 + IFLA_INET6_STATS = 0x3 + IFLA_INET6_MCAST = 0x4 + IFLA_INET6_CACHEINFO = 0x5 + IFLA_INET6_ICMP6STATS = 0x6 + IFLA_INET6_TOKEN = 0x7 + IFLA_INET6_ADDR_GEN_MODE = 0x8 + IFLA_BR_UNSPEC = 0x0 + IFLA_BR_FORWARD_DELAY = 0x1 + IFLA_BR_HELLO_TIME = 0x2 + IFLA_BR_MAX_AGE = 0x3 + IFLA_BR_AGEING_TIME = 0x4 + IFLA_BR_STP_STATE = 0x5 + IFLA_BR_PRIORITY = 0x6 + IFLA_BR_VLAN_FILTERING = 0x7 + IFLA_BR_VLAN_PROTOCOL = 0x8 + IFLA_BR_GROUP_FWD_MASK = 0x9 + IFLA_BR_ROOT_ID = 0xa + IFLA_BR_BRIDGE_ID = 0xb + IFLA_BR_ROOT_PORT = 0xc + IFLA_BR_ROOT_PATH_COST = 0xd + IFLA_BR_TOPOLOGY_CHANGE = 0xe + IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf + IFLA_BR_HELLO_TIMER = 0x10 + IFLA_BR_TCN_TIMER = 0x11 + IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 + IFLA_BR_GC_TIMER = 0x13 + IFLA_BR_GROUP_ADDR = 0x14 + IFLA_BR_FDB_FLUSH = 0x15 + IFLA_BR_MCAST_ROUTER = 0x16 + IFLA_BR_MCAST_SNOOPING = 0x17 + IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 + IFLA_BR_MCAST_QUERIER = 0x19 + IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a + IFLA_BR_MCAST_HASH_MAX = 0x1b + IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c + IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d + IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e + IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f + IFLA_BR_MCAST_QUERIER_INTVL = 0x20 + IFLA_BR_MCAST_QUERY_INTVL = 0x21 + IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 + IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 + IFLA_BR_NF_CALL_IPTABLES = 0x24 + IFLA_BR_NF_CALL_IP6TABLES = 0x25 + IFLA_BR_NF_CALL_ARPTABLES = 0x26 + IFLA_BR_VLAN_DEFAULT_PVID = 0x27 + IFLA_BR_PAD = 0x28 + IFLA_BR_VLAN_STATS_ENABLED = 0x29 + IFLA_BR_MCAST_STATS_ENABLED = 0x2a + IFLA_BR_MCAST_IGMP_VERSION = 0x2b + IFLA_BR_MCAST_MLD_VERSION = 0x2c + IFLA_BR_VLAN_STATS_PER_PORT = 0x2d + IFLA_BR_MULTI_BOOLOPT = 0x2e + IFLA_BRPORT_UNSPEC = 0x0 + IFLA_BRPORT_STATE = 0x1 + IFLA_BRPORT_PRIORITY = 0x2 + IFLA_BRPORT_COST = 0x3 + IFLA_BRPORT_MODE = 0x4 + IFLA_BRPORT_GUARD = 0x5 + IFLA_BRPORT_PROTECT = 0x6 + IFLA_BRPORT_FAST_LEAVE = 0x7 + IFLA_BRPORT_LEARNING = 0x8 + IFLA_BRPORT_UNICAST_FLOOD = 0x9 + IFLA_BRPORT_PROXYARP = 0xa + IFLA_BRPORT_LEARNING_SYNC = 0xb + IFLA_BRPORT_PROXYARP_WIFI = 0xc + IFLA_BRPORT_ROOT_ID = 0xd + IFLA_BRPORT_BRIDGE_ID = 0xe + IFLA_BRPORT_DESIGNATED_PORT = 0xf + IFLA_BRPORT_DESIGNATED_COST = 0x10 + IFLA_BRPORT_ID = 0x11 + IFLA_BRPORT_NO = 0x12 + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 + IFLA_BRPORT_CONFIG_PENDING = 0x14 + IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 + IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 + IFLA_BRPORT_HOLD_TIMER = 0x17 + IFLA_BRPORT_FLUSH = 0x18 + IFLA_BRPORT_MULTICAST_ROUTER = 0x19 + IFLA_BRPORT_PAD = 0x1a + IFLA_BRPORT_MCAST_FLOOD = 0x1b + IFLA_BRPORT_MCAST_TO_UCAST = 0x1c + IFLA_BRPORT_VLAN_TUNNEL = 0x1d + IFLA_BRPORT_BCAST_FLOOD = 0x1e + IFLA_BRPORT_GROUP_FWD_MASK = 0x1f + IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 + IFLA_BRPORT_ISOLATED = 0x21 + IFLA_BRPORT_BACKUP_PORT = 0x22 + IFLA_BRPORT_MRP_RING_OPEN = 0x23 + IFLA_BRPORT_MRP_IN_OPEN = 0x24 + IFLA_INFO_UNSPEC = 0x0 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 + IFLA_INFO_XSTATS = 0x3 + IFLA_INFO_SLAVE_KIND = 0x4 + IFLA_INFO_SLAVE_DATA = 0x5 + IFLA_VLAN_UNSPEC = 0x0 + IFLA_VLAN_ID = 0x1 + IFLA_VLAN_FLAGS = 0x2 + IFLA_VLAN_EGRESS_QOS = 0x3 + IFLA_VLAN_INGRESS_QOS = 0x4 + IFLA_VLAN_PROTOCOL = 0x5 + IFLA_VLAN_QOS_UNSPEC = 0x0 + IFLA_VLAN_QOS_MAPPING = 0x1 + IFLA_MACVLAN_UNSPEC = 0x0 + IFLA_MACVLAN_MODE = 0x1 + IFLA_MACVLAN_FLAGS = 0x2 + IFLA_MACVLAN_MACADDR_MODE = 0x3 + IFLA_MACVLAN_MACADDR = 0x4 + IFLA_MACVLAN_MACADDR_DATA = 0x5 + IFLA_MACVLAN_MACADDR_COUNT = 0x6 + IFLA_VRF_UNSPEC = 0x0 + IFLA_VRF_TABLE = 0x1 + IFLA_VRF_PORT_UNSPEC = 0x0 + IFLA_VRF_PORT_TABLE = 0x1 + IFLA_MACSEC_UNSPEC = 0x0 + IFLA_MACSEC_SCI = 0x1 + IFLA_MACSEC_PORT = 0x2 + IFLA_MACSEC_ICV_LEN = 0x3 + IFLA_MACSEC_CIPHER_SUITE = 0x4 + IFLA_MACSEC_WINDOW = 0x5 + IFLA_MACSEC_ENCODING_SA = 0x6 + IFLA_MACSEC_ENCRYPT = 0x7 + IFLA_MACSEC_PROTECT = 0x8 + IFLA_MACSEC_INC_SCI = 0x9 + IFLA_MACSEC_ES = 0xa + IFLA_MACSEC_SCB = 0xb + IFLA_MACSEC_REPLAY_PROTECT = 0xc + IFLA_MACSEC_VALIDATION = 0xd + IFLA_MACSEC_PAD = 0xe + IFLA_MACSEC_OFFLOAD = 0xf + IFLA_XFRM_UNSPEC = 0x0 + IFLA_XFRM_LINK = 0x1 + IFLA_XFRM_IF_ID = 0x2 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 + IFLA_VXLAN_UNSPEC = 0x0 + IFLA_VXLAN_ID = 0x1 + IFLA_VXLAN_GROUP = 0x2 + IFLA_VXLAN_LINK = 0x3 + IFLA_VXLAN_LOCAL = 0x4 + IFLA_VXLAN_TTL = 0x5 + IFLA_VXLAN_TOS = 0x6 + IFLA_VXLAN_LEARNING = 0x7 + IFLA_VXLAN_AGEING = 0x8 + IFLA_VXLAN_LIMIT = 0x9 + IFLA_VXLAN_PORT_RANGE = 0xa + IFLA_VXLAN_PROXY = 0xb + IFLA_VXLAN_RSC = 0xc + IFLA_VXLAN_L2MISS = 0xd + IFLA_VXLAN_L3MISS = 0xe + IFLA_VXLAN_PORT = 0xf + IFLA_VXLAN_GROUP6 = 0x10 + IFLA_VXLAN_LOCAL6 = 0x11 + IFLA_VXLAN_UDP_CSUM = 0x12 + IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 + IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 + IFLA_VXLAN_REMCSUM_TX = 0x15 + IFLA_VXLAN_REMCSUM_RX = 0x16 + IFLA_VXLAN_GBP = 0x17 + IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 + IFLA_VXLAN_COLLECT_METADATA = 0x19 + IFLA_VXLAN_LABEL = 0x1a + IFLA_VXLAN_GPE = 0x1b + IFLA_VXLAN_TTL_INHERIT = 0x1c + IFLA_VXLAN_DF = 0x1d + IFLA_GENEVE_UNSPEC = 0x0 + IFLA_GENEVE_ID = 0x1 + IFLA_GENEVE_REMOTE = 0x2 + IFLA_GENEVE_TTL = 0x3 + IFLA_GENEVE_TOS = 0x4 + IFLA_GENEVE_PORT = 0x5 + IFLA_GENEVE_COLLECT_METADATA = 0x6 + IFLA_GENEVE_REMOTE6 = 0x7 + IFLA_GENEVE_UDP_CSUM = 0x8 + IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 + IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa + IFLA_GENEVE_LABEL = 0xb + IFLA_GENEVE_TTL_INHERIT = 0xc + IFLA_GENEVE_DF = 0xd + IFLA_BAREUDP_UNSPEC = 0x0 + IFLA_BAREUDP_PORT = 0x1 + IFLA_BAREUDP_ETHERTYPE = 0x2 + IFLA_BAREUDP_SRCPORT_MIN = 0x3 + IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 + IFLA_PPP_UNSPEC = 0x0 + IFLA_PPP_DEV_FD = 0x1 + IFLA_GTP_UNSPEC = 0x0 + IFLA_GTP_FD0 = 0x1 + IFLA_GTP_FD1 = 0x2 + IFLA_GTP_PDP_HASHSIZE = 0x3 + IFLA_GTP_ROLE = 0x4 + IFLA_BOND_UNSPEC = 0x0 + IFLA_BOND_MODE = 0x1 + IFLA_BOND_ACTIVE_SLAVE = 0x2 + IFLA_BOND_MIIMON = 0x3 + IFLA_BOND_UPDELAY = 0x4 + IFLA_BOND_DOWNDELAY = 0x5 + IFLA_BOND_USE_CARRIER = 0x6 + IFLA_BOND_ARP_INTERVAL = 0x7 + IFLA_BOND_ARP_IP_TARGET = 0x8 + IFLA_BOND_ARP_VALIDATE = 0x9 + IFLA_BOND_ARP_ALL_TARGETS = 0xa + IFLA_BOND_PRIMARY = 0xb + IFLA_BOND_PRIMARY_RESELECT = 0xc + IFLA_BOND_FAIL_OVER_MAC = 0xd + IFLA_BOND_XMIT_HASH_POLICY = 0xe + IFLA_BOND_RESEND_IGMP = 0xf + IFLA_BOND_NUM_PEER_NOTIF = 0x10 + IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 + IFLA_BOND_MIN_LINKS = 0x12 + IFLA_BOND_LP_INTERVAL = 0x13 + IFLA_BOND_PACKETS_PER_SLAVE = 0x14 + IFLA_BOND_AD_LACP_RATE = 0x15 + IFLA_BOND_AD_SELECT = 0x16 + IFLA_BOND_AD_INFO = 0x17 + IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 + IFLA_BOND_AD_USER_PORT_KEY = 0x19 + IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a + IFLA_BOND_TLB_DYNAMIC_LB = 0x1b + IFLA_BOND_PEER_NOTIF_DELAY = 0x1c + IFLA_BOND_AD_INFO_UNSPEC = 0x0 + IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 + IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 + IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 + IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 + IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 + IFLA_BOND_SLAVE_UNSPEC = 0x0 + IFLA_BOND_SLAVE_STATE = 0x1 + IFLA_BOND_SLAVE_MII_STATUS = 0x2 + IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 + IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 + IFLA_BOND_SLAVE_QUEUE_ID = 0x5 + 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_VF_INFO_UNSPEC = 0x0 + IFLA_VF_INFO = 0x1 + IFLA_VF_UNSPEC = 0x0 + IFLA_VF_MAC = 0x1 + IFLA_VF_VLAN = 0x2 + IFLA_VF_TX_RATE = 0x3 + IFLA_VF_SPOOFCHK = 0x4 + IFLA_VF_LINK_STATE = 0x5 + IFLA_VF_RATE = 0x6 + IFLA_VF_RSS_QUERY_EN = 0x7 + IFLA_VF_STATS = 0x8 + IFLA_VF_TRUST = 0x9 + IFLA_VF_IB_NODE_GUID = 0xa + IFLA_VF_IB_PORT_GUID = 0xb + IFLA_VF_VLAN_LIST = 0xc + IFLA_VF_BROADCAST = 0xd + IFLA_VF_VLAN_INFO_UNSPEC = 0x0 + IFLA_VF_VLAN_INFO = 0x1 + IFLA_VF_LINK_STATE_AUTO = 0x0 + IFLA_VF_LINK_STATE_ENABLE = 0x1 + IFLA_VF_LINK_STATE_DISABLE = 0x2 + IFLA_VF_STATS_RX_PACKETS = 0x0 + IFLA_VF_STATS_TX_PACKETS = 0x1 + IFLA_VF_STATS_RX_BYTES = 0x2 + IFLA_VF_STATS_TX_BYTES = 0x3 + IFLA_VF_STATS_BROADCAST = 0x4 + IFLA_VF_STATS_MULTICAST = 0x5 + IFLA_VF_STATS_PAD = 0x6 + IFLA_VF_STATS_RX_DROPPED = 0x7 + IFLA_VF_STATS_TX_DROPPED = 0x8 + IFLA_VF_PORT_UNSPEC = 0x0 + IFLA_VF_PORT = 0x1 + IFLA_PORT_UNSPEC = 0x0 + IFLA_PORT_VF = 0x1 + IFLA_PORT_PROFILE = 0x2 + IFLA_PORT_VSI_TYPE = 0x3 + IFLA_PORT_INSTANCE_UUID = 0x4 + IFLA_PORT_HOST_UUID = 0x5 + IFLA_PORT_REQUEST = 0x6 + IFLA_PORT_RESPONSE = 0x7 + IFLA_IPOIB_UNSPEC = 0x0 + IFLA_IPOIB_PKEY = 0x1 + IFLA_IPOIB_MODE = 0x2 + IFLA_IPOIB_UMCAST = 0x3 + IFLA_HSR_UNSPEC = 0x0 + IFLA_HSR_SLAVE1 = 0x1 + IFLA_HSR_SLAVE2 = 0x2 + IFLA_HSR_MULTICAST_SPEC = 0x3 + IFLA_HSR_SUPERVISION_ADDR = 0x4 + IFLA_HSR_SEQ_NR = 0x5 + IFLA_HSR_VERSION = 0x6 + IFLA_HSR_PROTOCOL = 0x7 + 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_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 + IFLA_XDP_UNSPEC = 0x0 + IFLA_XDP_FD = 0x1 + IFLA_XDP_ATTACHED = 0x2 + IFLA_XDP_FLAGS = 0x3 + IFLA_XDP_PROG_ID = 0x4 + IFLA_XDP_DRV_PROG_ID = 0x5 + IFLA_XDP_SKB_PROG_ID = 0x6 + IFLA_XDP_HW_PROG_ID = 0x7 + IFLA_XDP_EXPECTED_FD = 0x8 + IFLA_EVENT_NONE = 0x0 + IFLA_EVENT_REBOOT = 0x1 + IFLA_EVENT_FEATURES = 0x2 + IFLA_EVENT_BONDING_FAILOVER = 0x3 + IFLA_EVENT_NOTIFY_PEERS = 0x4 + IFLA_EVENT_IGMP_RESEND = 0x5 + IFLA_EVENT_BONDING_OPTIONS = 0x6 + IFLA_TUN_UNSPEC = 0x0 + IFLA_TUN_OWNER = 0x1 + IFLA_TUN_GROUP = 0x2 + IFLA_TUN_TYPE = 0x3 + IFLA_TUN_PI = 0x4 + IFLA_TUN_VNET_HDR = 0x5 + IFLA_TUN_PERSIST = 0x6 + IFLA_TUN_MULTI_QUEUE = 0x7 + IFLA_TUN_NUM_QUEUES = 0x8 + IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 + IFLA_RMNET_UNSPEC = 0x0 + IFLA_RMNET_MUX_ID = 0x1 + IFLA_RMNET_FLAGS = 0x2 +) + +const ( + NF_INET_PRE_ROUTING = 0x0 + NF_INET_LOCAL_IN = 0x1 + NF_INET_FORWARD = 0x2 + NF_INET_LOCAL_OUT = 0x3 + NF_INET_POST_ROUTING = 0x4 + NF_INET_NUMHOOKS = 0x5 +) + +const ( + NF_NETDEV_INGRESS = 0x0 + NF_NETDEV_NUMHOOKS = 0x1 +) + +const ( + NFPROTO_UNSPEC = 0x0 + NFPROTO_INET = 0x1 + NFPROTO_IPV4 = 0x2 + NFPROTO_ARP = 0x3 + NFPROTO_NETDEV = 0x5 + NFPROTO_BRIDGE = 0x7 + NFPROTO_IPV6 = 0xa + NFPROTO_DECNET = 0xc + NFPROTO_NUMPROTO = 0xd +) + +type Nfgenmsg struct { + Nfgen_family uint8 + Version uint8 + Res_id uint16 +} + +const ( + NFNL_BATCH_UNSPEC = 0x0 + NFNL_BATCH_GENID = 0x1 +) + +const ( + NFT_REG_VERDICT = 0x0 + NFT_REG_1 = 0x1 + NFT_REG_2 = 0x2 + NFT_REG_3 = 0x3 + NFT_REG_4 = 0x4 + NFT_REG32_00 = 0x8 + NFT_REG32_01 = 0x9 + NFT_REG32_02 = 0xa + NFT_REG32_03 = 0xb + NFT_REG32_04 = 0xc + NFT_REG32_05 = 0xd + NFT_REG32_06 = 0xe + NFT_REG32_07 = 0xf + NFT_REG32_08 = 0x10 + NFT_REG32_09 = 0x11 + NFT_REG32_10 = 0x12 + NFT_REG32_11 = 0x13 + NFT_REG32_12 = 0x14 + NFT_REG32_13 = 0x15 + NFT_REG32_14 = 0x16 + NFT_REG32_15 = 0x17 + NFT_CONTINUE = -0x1 + NFT_BREAK = -0x2 + NFT_JUMP = -0x3 + NFT_GOTO = -0x4 + NFT_RETURN = -0x5 + NFT_MSG_NEWTABLE = 0x0 + NFT_MSG_GETTABLE = 0x1 + NFT_MSG_DELTABLE = 0x2 + NFT_MSG_NEWCHAIN = 0x3 + NFT_MSG_GETCHAIN = 0x4 + NFT_MSG_DELCHAIN = 0x5 + NFT_MSG_NEWRULE = 0x6 + NFT_MSG_GETRULE = 0x7 + NFT_MSG_DELRULE = 0x8 + NFT_MSG_NEWSET = 0x9 + NFT_MSG_GETSET = 0xa + NFT_MSG_DELSET = 0xb + NFT_MSG_NEWSETELEM = 0xc + NFT_MSG_GETSETELEM = 0xd + NFT_MSG_DELSETELEM = 0xe + NFT_MSG_NEWGEN = 0xf + NFT_MSG_GETGEN = 0x10 + NFT_MSG_TRACE = 0x11 + NFT_MSG_NEWOBJ = 0x12 + NFT_MSG_GETOBJ = 0x13 + NFT_MSG_DELOBJ = 0x14 + NFT_MSG_GETOBJ_RESET = 0x15 + NFT_MSG_MAX = 0x19 + NFTA_LIST_UNSPEC = 0x0 + NFTA_LIST_ELEM = 0x1 + NFTA_HOOK_UNSPEC = 0x0 + NFTA_HOOK_HOOKNUM = 0x1 + NFTA_HOOK_PRIORITY = 0x2 + NFTA_HOOK_DEV = 0x3 + NFT_TABLE_F_DORMANT = 0x1 + NFTA_TABLE_UNSPEC = 0x0 + NFTA_TABLE_NAME = 0x1 + NFTA_TABLE_FLAGS = 0x2 + NFTA_TABLE_USE = 0x3 + NFTA_CHAIN_UNSPEC = 0x0 + NFTA_CHAIN_TABLE = 0x1 + NFTA_CHAIN_HANDLE = 0x2 + NFTA_CHAIN_NAME = 0x3 + NFTA_CHAIN_HOOK = 0x4 + NFTA_CHAIN_POLICY = 0x5 + NFTA_CHAIN_USE = 0x6 + NFTA_CHAIN_TYPE = 0x7 + NFTA_CHAIN_COUNTERS = 0x8 + NFTA_CHAIN_PAD = 0x9 + NFTA_RULE_UNSPEC = 0x0 + NFTA_RULE_TABLE = 0x1 + NFTA_RULE_CHAIN = 0x2 + NFTA_RULE_HANDLE = 0x3 + NFTA_RULE_EXPRESSIONS = 0x4 + NFTA_RULE_COMPAT = 0x5 + NFTA_RULE_POSITION = 0x6 + NFTA_RULE_USERDATA = 0x7 + NFTA_RULE_PAD = 0x8 + NFTA_RULE_ID = 0x9 + NFT_RULE_COMPAT_F_INV = 0x2 + NFT_RULE_COMPAT_F_MASK = 0x2 + NFTA_RULE_COMPAT_UNSPEC = 0x0 + NFTA_RULE_COMPAT_PROTO = 0x1 + NFTA_RULE_COMPAT_FLAGS = 0x2 + NFT_SET_ANONYMOUS = 0x1 + NFT_SET_CONSTANT = 0x2 + NFT_SET_INTERVAL = 0x4 + NFT_SET_MAP = 0x8 + NFT_SET_TIMEOUT = 0x10 + NFT_SET_EVAL = 0x20 + NFT_SET_OBJECT = 0x40 + NFT_SET_POL_PERFORMANCE = 0x0 + NFT_SET_POL_MEMORY = 0x1 + NFTA_SET_DESC_UNSPEC = 0x0 + NFTA_SET_DESC_SIZE = 0x1 + NFTA_SET_UNSPEC = 0x0 + NFTA_SET_TABLE = 0x1 + NFTA_SET_NAME = 0x2 + NFTA_SET_FLAGS = 0x3 + NFTA_SET_KEY_TYPE = 0x4 + NFTA_SET_KEY_LEN = 0x5 + NFTA_SET_DATA_TYPE = 0x6 + NFTA_SET_DATA_LEN = 0x7 + NFTA_SET_POLICY = 0x8 + NFTA_SET_DESC = 0x9 + NFTA_SET_ID = 0xa + NFTA_SET_TIMEOUT = 0xb + NFTA_SET_GC_INTERVAL = 0xc + NFTA_SET_USERDATA = 0xd + NFTA_SET_PAD = 0xe + NFTA_SET_OBJ_TYPE = 0xf + NFT_SET_ELEM_INTERVAL_END = 0x1 + NFTA_SET_ELEM_UNSPEC = 0x0 + NFTA_SET_ELEM_KEY = 0x1 + NFTA_SET_ELEM_DATA = 0x2 + NFTA_SET_ELEM_FLAGS = 0x3 + NFTA_SET_ELEM_TIMEOUT = 0x4 + NFTA_SET_ELEM_EXPIRATION = 0x5 + NFTA_SET_ELEM_USERDATA = 0x6 + NFTA_SET_ELEM_EXPR = 0x7 + NFTA_SET_ELEM_PAD = 0x8 + NFTA_SET_ELEM_OBJREF = 0x9 + NFTA_SET_ELEM_LIST_UNSPEC = 0x0 + NFTA_SET_ELEM_LIST_TABLE = 0x1 + NFTA_SET_ELEM_LIST_SET = 0x2 + NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 + NFTA_SET_ELEM_LIST_SET_ID = 0x4 + NFT_DATA_VALUE = 0x0 + NFT_DATA_VERDICT = 0xffffff00 + NFTA_DATA_UNSPEC = 0x0 + NFTA_DATA_VALUE = 0x1 + NFTA_DATA_VERDICT = 0x2 + NFTA_VERDICT_UNSPEC = 0x0 + NFTA_VERDICT_CODE = 0x1 + NFTA_VERDICT_CHAIN = 0x2 + NFTA_EXPR_UNSPEC = 0x0 + NFTA_EXPR_NAME = 0x1 + NFTA_EXPR_DATA = 0x2 + NFTA_IMMEDIATE_UNSPEC = 0x0 + NFTA_IMMEDIATE_DREG = 0x1 + NFTA_IMMEDIATE_DATA = 0x2 + NFTA_BITWISE_UNSPEC = 0x0 + NFTA_BITWISE_SREG = 0x1 + NFTA_BITWISE_DREG = 0x2 + NFTA_BITWISE_LEN = 0x3 + NFTA_BITWISE_MASK = 0x4 + NFTA_BITWISE_XOR = 0x5 + NFT_BYTEORDER_NTOH = 0x0 + NFT_BYTEORDER_HTON = 0x1 + NFTA_BYTEORDER_UNSPEC = 0x0 + NFTA_BYTEORDER_SREG = 0x1 + NFTA_BYTEORDER_DREG = 0x2 + NFTA_BYTEORDER_OP = 0x3 + NFTA_BYTEORDER_LEN = 0x4 + NFTA_BYTEORDER_SIZE = 0x5 + NFT_CMP_EQ = 0x0 + NFT_CMP_NEQ = 0x1 + NFT_CMP_LT = 0x2 + NFT_CMP_LTE = 0x3 + NFT_CMP_GT = 0x4 + NFT_CMP_GTE = 0x5 + NFTA_CMP_UNSPEC = 0x0 + NFTA_CMP_SREG = 0x1 + NFTA_CMP_OP = 0x2 + NFTA_CMP_DATA = 0x3 + NFT_RANGE_EQ = 0x0 + NFT_RANGE_NEQ = 0x1 + NFTA_RANGE_UNSPEC = 0x0 + NFTA_RANGE_SREG = 0x1 + NFTA_RANGE_OP = 0x2 + NFTA_RANGE_FROM_DATA = 0x3 + NFTA_RANGE_TO_DATA = 0x4 + NFT_LOOKUP_F_INV = 0x1 + NFTA_LOOKUP_UNSPEC = 0x0 + NFTA_LOOKUP_SET = 0x1 + NFTA_LOOKUP_SREG = 0x2 + NFTA_LOOKUP_DREG = 0x3 + NFTA_LOOKUP_SET_ID = 0x4 + NFTA_LOOKUP_FLAGS = 0x5 + NFT_DYNSET_OP_ADD = 0x0 + NFT_DYNSET_OP_UPDATE = 0x1 + NFT_DYNSET_F_INV = 0x1 + NFTA_DYNSET_UNSPEC = 0x0 + NFTA_DYNSET_SET_NAME = 0x1 + NFTA_DYNSET_SET_ID = 0x2 + NFTA_DYNSET_OP = 0x3 + NFTA_DYNSET_SREG_KEY = 0x4 + NFTA_DYNSET_SREG_DATA = 0x5 + NFTA_DYNSET_TIMEOUT = 0x6 + NFTA_DYNSET_EXPR = 0x7 + NFTA_DYNSET_PAD = 0x8 + NFTA_DYNSET_FLAGS = 0x9 + NFT_PAYLOAD_LL_HEADER = 0x0 + NFT_PAYLOAD_NETWORK_HEADER = 0x1 + NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + NFTA_PAYLOAD_BASE = 0x2 + NFTA_PAYLOAD_OFFSET = 0x3 + NFTA_PAYLOAD_LEN = 0x4 + NFTA_PAYLOAD_SREG = 0x5 + NFTA_PAYLOAD_CSUM_TYPE = 0x6 + NFTA_PAYLOAD_CSUM_OFFSET = 0x7 + NFTA_PAYLOAD_CSUM_FLAGS = 0x8 + NFT_EXTHDR_F_PRESENT = 0x1 + NFT_EXTHDR_OP_IPV6 = 0x0 + NFT_EXTHDR_OP_TCPOPT = 0x1 + NFTA_EXTHDR_UNSPEC = 0x0 + NFTA_EXTHDR_DREG = 0x1 + NFTA_EXTHDR_TYPE = 0x2 + NFTA_EXTHDR_OFFSET = 0x3 + NFTA_EXTHDR_LEN = 0x4 + NFTA_EXTHDR_FLAGS = 0x5 + NFTA_EXTHDR_OP = 0x6 + NFTA_EXTHDR_SREG = 0x7 + NFT_META_LEN = 0x0 + NFT_META_PROTOCOL = 0x1 + NFT_META_PRIORITY = 0x2 + NFT_META_MARK = 0x3 + NFT_META_IIF = 0x4 + NFT_META_OIF = 0x5 + NFT_META_IIFNAME = 0x6 + NFT_META_OIFNAME = 0x7 + NFT_META_IIFTYPE = 0x8 + NFT_META_OIFTYPE = 0x9 + NFT_META_SKUID = 0xa + NFT_META_SKGID = 0xb + NFT_META_NFTRACE = 0xc + NFT_META_RTCLASSID = 0xd + NFT_META_SECMARK = 0xe + NFT_META_NFPROTO = 0xf + NFT_META_L4PROTO = 0x10 + NFT_META_BRI_IIFNAME = 0x11 + NFT_META_BRI_OIFNAME = 0x12 + NFT_META_PKTTYPE = 0x13 + NFT_META_CPU = 0x14 + NFT_META_IIFGROUP = 0x15 + NFT_META_OIFGROUP = 0x16 + NFT_META_CGROUP = 0x17 + NFT_META_PRANDOM = 0x18 + NFT_RT_CLASSID = 0x0 + NFT_RT_NEXTHOP4 = 0x1 + NFT_RT_NEXTHOP6 = 0x2 + NFT_RT_TCPMSS = 0x3 + NFT_HASH_JENKINS = 0x0 + NFT_HASH_SYM = 0x1 + NFTA_HASH_UNSPEC = 0x0 + NFTA_HASH_SREG = 0x1 + NFTA_HASH_DREG = 0x2 + NFTA_HASH_LEN = 0x3 + NFTA_HASH_MODULUS = 0x4 + NFTA_HASH_SEED = 0x5 + NFTA_HASH_OFFSET = 0x6 + NFTA_HASH_TYPE = 0x7 + NFTA_META_UNSPEC = 0x0 + NFTA_META_DREG = 0x1 + NFTA_META_KEY = 0x2 + NFTA_META_SREG = 0x3 + NFTA_RT_UNSPEC = 0x0 + NFTA_RT_DREG = 0x1 + NFTA_RT_KEY = 0x2 + NFT_CT_STATE = 0x0 + NFT_CT_DIRECTION = 0x1 + NFT_CT_STATUS = 0x2 + NFT_CT_MARK = 0x3 + NFT_CT_SECMARK = 0x4 + NFT_CT_EXPIRATION = 0x5 + NFT_CT_HELPER = 0x6 + NFT_CT_L3PROTOCOL = 0x7 + NFT_CT_SRC = 0x8 + NFT_CT_DST = 0x9 + NFT_CT_PROTOCOL = 0xa + NFT_CT_PROTO_SRC = 0xb + NFT_CT_PROTO_DST = 0xc + NFT_CT_LABELS = 0xd + NFT_CT_PKTS = 0xe + NFT_CT_BYTES = 0xf + NFT_CT_AVGPKT = 0x10 + NFT_CT_ZONE = 0x11 + NFT_CT_EVENTMASK = 0x12 + NFTA_CT_UNSPEC = 0x0 + NFTA_CT_DREG = 0x1 + NFTA_CT_KEY = 0x2 + NFTA_CT_DIRECTION = 0x3 + NFTA_CT_SREG = 0x4 + NFT_LIMIT_PKTS = 0x0 + NFT_LIMIT_PKT_BYTES = 0x1 + NFT_LIMIT_F_INV = 0x1 + NFTA_LIMIT_UNSPEC = 0x0 + NFTA_LIMIT_RATE = 0x1 + NFTA_LIMIT_UNIT = 0x2 + NFTA_LIMIT_BURST = 0x3 + NFTA_LIMIT_TYPE = 0x4 + NFTA_LIMIT_FLAGS = 0x5 + NFTA_LIMIT_PAD = 0x6 + NFTA_COUNTER_UNSPEC = 0x0 + NFTA_COUNTER_BYTES = 0x1 + NFTA_COUNTER_PACKETS = 0x2 + NFTA_COUNTER_PAD = 0x3 + NFTA_LOG_UNSPEC = 0x0 + NFTA_LOG_GROUP = 0x1 + NFTA_LOG_PREFIX = 0x2 + NFTA_LOG_SNAPLEN = 0x3 + NFTA_LOG_QTHRESHOLD = 0x4 + NFTA_LOG_LEVEL = 0x5 + NFTA_LOG_FLAGS = 0x6 + NFTA_QUEUE_UNSPEC = 0x0 + NFTA_QUEUE_NUM = 0x1 + NFTA_QUEUE_TOTAL = 0x2 + NFTA_QUEUE_FLAGS = 0x3 + NFTA_QUEUE_SREG_QNUM = 0x4 + NFT_QUOTA_F_INV = 0x1 + NFT_QUOTA_F_DEPLETED = 0x2 + NFTA_QUOTA_UNSPEC = 0x0 + NFTA_QUOTA_BYTES = 0x1 + NFTA_QUOTA_FLAGS = 0x2 + NFTA_QUOTA_PAD = 0x3 + NFTA_QUOTA_CONSUMED = 0x4 + NFT_REJECT_ICMP_UNREACH = 0x0 + NFT_REJECT_TCP_RST = 0x1 + NFT_REJECT_ICMPX_UNREACH = 0x2 + NFT_REJECT_ICMPX_NO_ROUTE = 0x0 + NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 + NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 + NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 + NFTA_REJECT_UNSPEC = 0x0 + NFTA_REJECT_TYPE = 0x1 + NFTA_REJECT_ICMP_CODE = 0x2 + NFT_NAT_SNAT = 0x0 + NFT_NAT_DNAT = 0x1 + NFTA_NAT_UNSPEC = 0x0 + NFTA_NAT_TYPE = 0x1 + NFTA_NAT_FAMILY = 0x2 + NFTA_NAT_REG_ADDR_MIN = 0x3 + NFTA_NAT_REG_ADDR_MAX = 0x4 + NFTA_NAT_REG_PROTO_MIN = 0x5 + NFTA_NAT_REG_PROTO_MAX = 0x6 + NFTA_NAT_FLAGS = 0x7 + NFTA_MASQ_UNSPEC = 0x0 + NFTA_MASQ_FLAGS = 0x1 + NFTA_MASQ_REG_PROTO_MIN = 0x2 + NFTA_MASQ_REG_PROTO_MAX = 0x3 + NFTA_REDIR_UNSPEC = 0x0 + NFTA_REDIR_REG_PROTO_MIN = 0x1 + NFTA_REDIR_REG_PROTO_MAX = 0x2 + NFTA_REDIR_FLAGS = 0x3 + NFTA_DUP_UNSPEC = 0x0 + NFTA_DUP_SREG_ADDR = 0x1 + NFTA_DUP_SREG_DEV = 0x2 + NFTA_FWD_UNSPEC = 0x0 + NFTA_FWD_SREG_DEV = 0x1 + NFTA_OBJREF_UNSPEC = 0x0 + NFTA_OBJREF_IMM_TYPE = 0x1 + NFTA_OBJREF_IMM_NAME = 0x2 + NFTA_OBJREF_SET_SREG = 0x3 + NFTA_OBJREF_SET_NAME = 0x4 + NFTA_OBJREF_SET_ID = 0x5 + NFTA_GEN_UNSPEC = 0x0 + NFTA_GEN_ID = 0x1 + NFTA_GEN_PROC_PID = 0x2 + NFTA_GEN_PROC_NAME = 0x3 + NFTA_FIB_UNSPEC = 0x0 + NFTA_FIB_DREG = 0x1 + NFTA_FIB_RESULT = 0x2 + NFTA_FIB_FLAGS = 0x3 + NFT_FIB_RESULT_UNSPEC = 0x0 + NFT_FIB_RESULT_OIF = 0x1 + NFT_FIB_RESULT_OIFNAME = 0x2 + NFT_FIB_RESULT_ADDRTYPE = 0x3 + NFTA_FIB_F_SADDR = 0x1 + NFTA_FIB_F_DADDR = 0x2 + NFTA_FIB_F_MARK = 0x4 + NFTA_FIB_F_IIF = 0x8 + NFTA_FIB_F_OIF = 0x10 + NFTA_FIB_F_PRESENT = 0x20 + NFTA_CT_HELPER_UNSPEC = 0x0 + NFTA_CT_HELPER_NAME = 0x1 + NFTA_CT_HELPER_L3PROTO = 0x2 + NFTA_CT_HELPER_L4PROTO = 0x3 + NFTA_OBJ_UNSPEC = 0x0 + NFTA_OBJ_TABLE = 0x1 + NFTA_OBJ_NAME = 0x2 + NFTA_OBJ_TYPE = 0x3 + NFTA_OBJ_DATA = 0x4 + NFTA_OBJ_USE = 0x5 + NFTA_TRACE_UNSPEC = 0x0 + NFTA_TRACE_TABLE = 0x1 + NFTA_TRACE_CHAIN = 0x2 + NFTA_TRACE_RULE_HANDLE = 0x3 + NFTA_TRACE_TYPE = 0x4 + NFTA_TRACE_VERDICT = 0x5 + NFTA_TRACE_ID = 0x6 + NFTA_TRACE_LL_HEADER = 0x7 + NFTA_TRACE_NETWORK_HEADER = 0x8 + NFTA_TRACE_TRANSPORT_HEADER = 0x9 + NFTA_TRACE_IIF = 0xa + NFTA_TRACE_IIFTYPE = 0xb + NFTA_TRACE_OIF = 0xc + NFTA_TRACE_OIFTYPE = 0xd + NFTA_TRACE_MARK = 0xe + NFTA_TRACE_NFPROTO = 0xf + NFTA_TRACE_POLICY = 0x10 + NFTA_TRACE_PAD = 0x11 + NFT_TRACETYPE_UNSPEC = 0x0 + NFT_TRACETYPE_POLICY = 0x1 + NFT_TRACETYPE_RETURN = 0x2 + NFT_TRACETYPE_RULE = 0x3 + NFTA_NG_UNSPEC = 0x0 + NFTA_NG_DREG = 0x1 + NFTA_NG_MODULUS = 0x2 + NFTA_NG_TYPE = 0x3 + NFTA_NG_OFFSET = 0x4 + NFT_NG_INCREMENTAL = 0x0 + NFT_NG_RANDOM = 0x1 +) + +const ( + NFTA_TARGET_UNSPEC = 0x0 + NFTA_TARGET_NAME = 0x1 + NFTA_TARGET_REV = 0x2 + NFTA_TARGET_INFO = 0x3 + NFTA_MATCH_UNSPEC = 0x0 + NFTA_MATCH_NAME = 0x1 + NFTA_MATCH_REV = 0x2 + NFTA_MATCH_INFO = 0x3 + NFTA_COMPAT_UNSPEC = 0x0 + NFTA_COMPAT_NAME = 0x1 + NFTA_COMPAT_REV = 0x2 + NFTA_COMPAT_TYPE = 0x3 +) + +type RTCTime struct { + Sec int32 + Min int32 + Hour int32 + Mday int32 + Mon int32 + Year int32 + Wday int32 + Yday int32 + Isdst int32 +} + +type RTCWkAlrm struct { + Enabled uint8 + Pending uint8 + Time RTCTime +} + +type BlkpgIoctlArg struct { + Op int32 + Flags int32 + Datalen int32 + Data *byte +} + +const ( + BLKPG_ADD_PARTITION = 0x1 + BLKPG_DEL_PARTITION = 0x2 + BLKPG_RESIZE_PARTITION = 0x3 +) + +const ( + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 + NETNSA_TARGET_NSID = 0x4 + NETNSA_CURRENT_NSID = 0x5 +) + +type XDPRingOffset struct { + Producer uint64 + Consumer uint64 + Desc uint64 + Flags uint64 +} + +type XDPMmapOffsets struct { + Rx XDPRingOffset + Tx XDPRingOffset + Fr XDPRingOffset + Cr XDPRingOffset +} + +type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 + Rx_ring_full uint64 + Rx_fill_ring_empty_descs uint64 + Tx_ring_empty_descs uint64 +} + +type XDPDesc struct { + Addr uint64 + Len uint32 + Options uint32 +} + +const ( + NCSI_CMD_UNSPEC = 0x0 + NCSI_CMD_PKG_INFO = 0x1 + NCSI_CMD_SET_INTERFACE = 0x2 + NCSI_CMD_CLEAR_INTERFACE = 0x3 + NCSI_ATTR_UNSPEC = 0x0 + NCSI_ATTR_IFINDEX = 0x1 + NCSI_ATTR_PACKAGE_LIST = 0x2 + NCSI_ATTR_PACKAGE_ID = 0x3 + NCSI_ATTR_CHANNEL_ID = 0x4 + NCSI_PKG_ATTR_UNSPEC = 0x0 + NCSI_PKG_ATTR = 0x1 + NCSI_PKG_ATTR_ID = 0x2 + NCSI_PKG_ATTR_FORCED = 0x3 + NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 + NCSI_CHANNEL_ATTR_UNSPEC = 0x0 + NCSI_CHANNEL_ATTR = 0x1 + NCSI_CHANNEL_ATTR_ID = 0x2 + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 + NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 + NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 + NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 + NCSI_CHANNEL_ATTR_ACTIVE = 0x7 + NCSI_CHANNEL_ATTR_FORCED = 0x8 + NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 + NCSI_CHANNEL_ATTR_VLAN_ID = 0xa +) + +type ScmTimestamping struct { + Ts [3]Timespec +} + +const ( + SOF_TIMESTAMPING_TX_HARDWARE = 0x1 + SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 + SOF_TIMESTAMPING_RX_HARDWARE = 0x4 + SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 + SOF_TIMESTAMPING_SOFTWARE = 0x10 + SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 + SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 + SOF_TIMESTAMPING_OPT_ID = 0x80 + SOF_TIMESTAMPING_TX_SCHED = 0x100 + SOF_TIMESTAMPING_TX_ACK = 0x200 + SOF_TIMESTAMPING_OPT_CMSG = 0x400 + SOF_TIMESTAMPING_OPT_TSONLY = 0x800 + SOF_TIMESTAMPING_OPT_STATS = 0x1000 + SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 + SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 + + SOF_TIMESTAMPING_LAST = 0x4000 + SOF_TIMESTAMPING_MASK = 0x7fff + + SCM_TSTAMP_SND = 0x0 + SCM_TSTAMP_SCHED = 0x1 + SCM_TSTAMP_ACK = 0x2 +) + +type SockExtendedErr struct { + Errno uint32 + Origin uint8 + Type uint8 + Code uint8 + Pad uint8 + Info uint32 + Data uint32 +} + +type FanotifyEventMetadata struct { + Event_len uint32 + Vers uint8 + Reserved uint8 + Metadata_len uint16 + Mask uint64 + Fd int32 + Pid int32 +} + +type FanotifyResponse struct { + Fd int32 + Response uint32 +} + +const ( + CRYPTO_MSG_BASE = 0x10 + CRYPTO_MSG_NEWALG = 0x10 + CRYPTO_MSG_DELALG = 0x11 + CRYPTO_MSG_UPDATEALG = 0x12 + CRYPTO_MSG_GETALG = 0x13 + CRYPTO_MSG_DELRNG = 0x14 + CRYPTO_MSG_GETSTAT = 0x15 +) + +const ( + CRYPTOCFGA_UNSPEC = 0x0 + CRYPTOCFGA_PRIORITY_VAL = 0x1 + CRYPTOCFGA_REPORT_LARVAL = 0x2 + CRYPTOCFGA_REPORT_HASH = 0x3 + CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 + CRYPTOCFGA_REPORT_AEAD = 0x5 + CRYPTOCFGA_REPORT_COMPRESS = 0x6 + CRYPTOCFGA_REPORT_RNG = 0x7 + CRYPTOCFGA_REPORT_CIPHER = 0x8 + CRYPTOCFGA_REPORT_AKCIPHER = 0x9 + CRYPTOCFGA_REPORT_KPP = 0xa + CRYPTOCFGA_REPORT_ACOMP = 0xb + CRYPTOCFGA_STAT_LARVAL = 0xc + CRYPTOCFGA_STAT_HASH = 0xd + CRYPTOCFGA_STAT_BLKCIPHER = 0xe + CRYPTOCFGA_STAT_AEAD = 0xf + CRYPTOCFGA_STAT_COMPRESS = 0x10 + CRYPTOCFGA_STAT_RNG = 0x11 + CRYPTOCFGA_STAT_CIPHER = 0x12 + CRYPTOCFGA_STAT_AKCIPHER = 0x13 + CRYPTOCFGA_STAT_KPP = 0x14 + CRYPTOCFGA_STAT_ACOMP = 0x15 +) + +const ( + BPF_REG_0 = 0x0 + BPF_REG_1 = 0x1 + BPF_REG_2 = 0x2 + BPF_REG_3 = 0x3 + BPF_REG_4 = 0x4 + BPF_REG_5 = 0x5 + BPF_REG_6 = 0x6 + BPF_REG_7 = 0x7 + BPF_REG_8 = 0x8 + BPF_REG_9 = 0x9 + BPF_REG_10 = 0xa + BPF_MAP_CREATE = 0x0 + BPF_MAP_LOOKUP_ELEM = 0x1 + BPF_MAP_UPDATE_ELEM = 0x2 + BPF_MAP_DELETE_ELEM = 0x3 + BPF_MAP_GET_NEXT_KEY = 0x4 + BPF_PROG_LOAD = 0x5 + BPF_OBJ_PIN = 0x6 + BPF_OBJ_GET = 0x7 + BPF_PROG_ATTACH = 0x8 + BPF_PROG_DETACH = 0x9 + BPF_PROG_TEST_RUN = 0xa + BPF_PROG_GET_NEXT_ID = 0xb + BPF_MAP_GET_NEXT_ID = 0xc + BPF_PROG_GET_FD_BY_ID = 0xd + BPF_MAP_GET_FD_BY_ID = 0xe + BPF_OBJ_GET_INFO_BY_FD = 0xf + BPF_PROG_QUERY = 0x10 + BPF_RAW_TRACEPOINT_OPEN = 0x11 + BPF_BTF_LOAD = 0x12 + BPF_BTF_GET_FD_BY_ID = 0x13 + BPF_TASK_FD_QUERY = 0x14 + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 + BPF_MAP_FREEZE = 0x16 + BPF_BTF_GET_NEXT_ID = 0x17 + BPF_MAP_LOOKUP_BATCH = 0x18 + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 + BPF_MAP_UPDATE_BATCH = 0x1a + BPF_MAP_DELETE_BATCH = 0x1b + BPF_LINK_CREATE = 0x1c + BPF_LINK_UPDATE = 0x1d + BPF_LINK_GET_FD_BY_ID = 0x1e + BPF_LINK_GET_NEXT_ID = 0x1f + BPF_ENABLE_STATS = 0x20 + BPF_ITER_CREATE = 0x21 + BPF_LINK_DETACH = 0x22 + BPF_PROG_BIND_MAP = 0x23 + BPF_MAP_TYPE_UNSPEC = 0x0 + BPF_MAP_TYPE_HASH = 0x1 + BPF_MAP_TYPE_ARRAY = 0x2 + BPF_MAP_TYPE_PROG_ARRAY = 0x3 + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 + BPF_MAP_TYPE_PERCPU_HASH = 0x5 + BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 + BPF_MAP_TYPE_STACK_TRACE = 0x7 + BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 + BPF_MAP_TYPE_LRU_HASH = 0x9 + BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa + BPF_MAP_TYPE_LPM_TRIE = 0xb + BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc + BPF_MAP_TYPE_HASH_OF_MAPS = 0xd + BPF_MAP_TYPE_DEVMAP = 0xe + BPF_MAP_TYPE_SOCKMAP = 0xf + BPF_MAP_TYPE_CPUMAP = 0x10 + BPF_MAP_TYPE_XSKMAP = 0x11 + BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 + BPF_MAP_TYPE_QUEUE = 0x16 + BPF_MAP_TYPE_STACK = 0x17 + BPF_MAP_TYPE_SK_STORAGE = 0x18 + BPF_MAP_TYPE_DEVMAP_HASH = 0x19 + BPF_MAP_TYPE_STRUCT_OPS = 0x1a + BPF_MAP_TYPE_RINGBUF = 0x1b + BPF_MAP_TYPE_INODE_STORAGE = 0x1c + BPF_PROG_TYPE_UNSPEC = 0x0 + BPF_PROG_TYPE_SOCKET_FILTER = 0x1 + BPF_PROG_TYPE_KPROBE = 0x2 + BPF_PROG_TYPE_SCHED_CLS = 0x3 + BPF_PROG_TYPE_SCHED_ACT = 0x4 + BPF_PROG_TYPE_TRACEPOINT = 0x5 + BPF_PROG_TYPE_XDP = 0x6 + BPF_PROG_TYPE_PERF_EVENT = 0x7 + BPF_PROG_TYPE_CGROUP_SKB = 0x8 + BPF_PROG_TYPE_CGROUP_SOCK = 0x9 + BPF_PROG_TYPE_LWT_IN = 0xa + BPF_PROG_TYPE_LWT_OUT = 0xb + BPF_PROG_TYPE_LWT_XMIT = 0xc + BPF_PROG_TYPE_SOCK_OPS = 0xd + BPF_PROG_TYPE_SK_SKB = 0xe + BPF_PROG_TYPE_CGROUP_DEVICE = 0xf + BPF_PROG_TYPE_SK_MSG = 0x10 + BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 + BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 + BPF_PROG_TYPE_LIRC_MODE2 = 0x14 + BPF_PROG_TYPE_SK_REUSEPORT = 0x15 + BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 + BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 + BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 + BPF_PROG_TYPE_TRACING = 0x1a + BPF_PROG_TYPE_STRUCT_OPS = 0x1b + BPF_PROG_TYPE_EXT = 0x1c + BPF_PROG_TYPE_LSM = 0x1d + BPF_PROG_TYPE_SK_LOOKUP = 0x1e + BPF_CGROUP_INET_INGRESS = 0x0 + BPF_CGROUP_INET_EGRESS = 0x1 + BPF_CGROUP_INET_SOCK_CREATE = 0x2 + BPF_CGROUP_SOCK_OPS = 0x3 + BPF_SK_SKB_STREAM_PARSER = 0x4 + BPF_SK_SKB_STREAM_VERDICT = 0x5 + BPF_CGROUP_DEVICE = 0x6 + BPF_SK_MSG_VERDICT = 0x7 + BPF_CGROUP_INET4_BIND = 0x8 + BPF_CGROUP_INET6_BIND = 0x9 + BPF_CGROUP_INET4_CONNECT = 0xa + BPF_CGROUP_INET6_CONNECT = 0xb + BPF_CGROUP_INET4_POST_BIND = 0xc + BPF_CGROUP_INET6_POST_BIND = 0xd + BPF_CGROUP_UDP4_SENDMSG = 0xe + BPF_CGROUP_UDP6_SENDMSG = 0xf + BPF_LIRC_MODE2 = 0x10 + BPF_FLOW_DISSECTOR = 0x11 + BPF_CGROUP_SYSCTL = 0x12 + BPF_CGROUP_UDP4_RECVMSG = 0x13 + BPF_CGROUP_UDP6_RECVMSG = 0x14 + BPF_CGROUP_GETSOCKOPT = 0x15 + BPF_CGROUP_SETSOCKOPT = 0x16 + BPF_TRACE_RAW_TP = 0x17 + BPF_TRACE_FENTRY = 0x18 + BPF_TRACE_FEXIT = 0x19 + BPF_MODIFY_RETURN = 0x1a + BPF_LSM_MAC = 0x1b + BPF_TRACE_ITER = 0x1c + BPF_CGROUP_INET4_GETPEERNAME = 0x1d + BPF_CGROUP_INET6_GETPEERNAME = 0x1e + BPF_CGROUP_INET4_GETSOCKNAME = 0x1f + BPF_CGROUP_INET6_GETSOCKNAME = 0x20 + BPF_XDP_DEVMAP = 0x21 + BPF_CGROUP_INET_SOCK_RELEASE = 0x22 + BPF_XDP_CPUMAP = 0x23 + BPF_SK_LOOKUP = 0x24 + BPF_XDP = 0x25 + BPF_LINK_TYPE_UNSPEC = 0x0 + BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 + BPF_LINK_TYPE_TRACING = 0x2 + BPF_LINK_TYPE_CGROUP = 0x3 + BPF_LINK_TYPE_ITER = 0x4 + BPF_LINK_TYPE_NETNS = 0x5 + BPF_LINK_TYPE_XDP = 0x6 + BPF_ANY = 0x0 + BPF_NOEXIST = 0x1 + BPF_EXIST = 0x2 + BPF_F_LOCK = 0x4 + BPF_F_NO_PREALLOC = 0x1 + BPF_F_NO_COMMON_LRU = 0x2 + BPF_F_NUMA_NODE = 0x4 + BPF_F_RDONLY = 0x8 + BPF_F_WRONLY = 0x10 + BPF_F_STACK_BUILD_ID = 0x20 + BPF_F_ZERO_SEED = 0x40 + BPF_F_RDONLY_PROG = 0x80 + BPF_F_WRONLY_PROG = 0x100 + BPF_F_CLONE = 0x200 + BPF_F_MMAPABLE = 0x400 + BPF_F_PRESERVE_ELEMS = 0x800 + BPF_F_INNER_MAP = 0x1000 + BPF_STATS_RUN_TIME = 0x0 + BPF_STACK_BUILD_ID_EMPTY = 0x0 + BPF_STACK_BUILD_ID_VALID = 0x1 + BPF_STACK_BUILD_ID_IP = 0x2 + BPF_F_RECOMPUTE_CSUM = 0x1 + BPF_F_INVALIDATE_HASH = 0x2 + BPF_F_HDR_FIELD_MASK = 0xf + BPF_F_PSEUDO_HDR = 0x10 + BPF_F_MARK_MANGLED_0 = 0x20 + BPF_F_MARK_ENFORCE = 0x40 + BPF_F_INGRESS = 0x1 + BPF_F_TUNINFO_IPV6 = 0x1 + BPF_F_SKIP_FIELD_MASK = 0xff + BPF_F_USER_STACK = 0x100 + BPF_F_FAST_STACK_CMP = 0x200 + BPF_F_REUSE_STACKID = 0x400 + BPF_F_USER_BUILD_ID = 0x800 + BPF_F_ZERO_CSUM_TX = 0x2 + BPF_F_DONT_FRAGMENT = 0x4 + BPF_F_SEQ_NUMBER = 0x8 + BPF_F_INDEX_MASK = 0xffffffff + BPF_F_CURRENT_CPU = 0xffffffff + BPF_F_CTXLEN_MASK = 0xfffff00000000 + BPF_F_CURRENT_NETNS = -0x1 + BPF_CSUM_LEVEL_QUERY = 0x0 + BPF_CSUM_LEVEL_INC = 0x1 + BPF_CSUM_LEVEL_DEC = 0x2 + BPF_CSUM_LEVEL_RESET = 0x3 + BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 + BPF_F_SYSCTL_BASE_NAME = 0x1 + BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 + BPF_SK_STORAGE_GET_F_CREATE = 0x1 + BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 + BPF_RB_NO_WAKEUP = 0x1 + BPF_RB_FORCE_WAKEUP = 0x2 + BPF_RB_AVAIL_DATA = 0x0 + BPF_RB_RING_SIZE = 0x1 + BPF_RB_CONS_POS = 0x2 + BPF_RB_PROD_POS = 0x3 + BPF_RINGBUF_BUSY_BIT = 0x80000000 + BPF_RINGBUF_DISCARD_BIT = 0x40000000 + BPF_RINGBUF_HDR_SZ = 0x8 + BPF_SK_LOOKUP_F_REPLACE = 0x1 + BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 + BPF_ADJ_ROOM_NET = 0x0 + BPF_ADJ_ROOM_MAC = 0x1 + BPF_HDR_START_MAC = 0x0 + BPF_HDR_START_NET = 0x1 + BPF_LWT_ENCAP_SEG6 = 0x0 + BPF_LWT_ENCAP_SEG6_INLINE = 0x1 + BPF_LWT_ENCAP_IP = 0x2 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 + BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 + BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 + BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 + BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f + BPF_SOCK_OPS_VOID = 0x0 + BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 + BPF_SOCK_OPS_RWND_INIT = 0x2 + BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 + BPF_SOCK_OPS_NEEDS_ECN = 0x6 + BPF_SOCK_OPS_BASE_RTT = 0x7 + BPF_SOCK_OPS_RTO_CB = 0x8 + BPF_SOCK_OPS_RETRANS_CB = 0x9 + BPF_SOCK_OPS_STATE_CB = 0xa + BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb + BPF_SOCK_OPS_RTT_CB = 0xc + BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd + BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe + BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf + BPF_TCP_ESTABLISHED = 0x1 + BPF_TCP_SYN_SENT = 0x2 + BPF_TCP_SYN_RECV = 0x3 + BPF_TCP_FIN_WAIT1 = 0x4 + BPF_TCP_FIN_WAIT2 = 0x5 + BPF_TCP_TIME_WAIT = 0x6 + BPF_TCP_CLOSE = 0x7 + BPF_TCP_CLOSE_WAIT = 0x8 + BPF_TCP_LAST_ACK = 0x9 + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc + BPF_TCP_MAX_STATES = 0xd + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + TCP_BPF_DELACK_MAX = 0x3eb + TCP_BPF_RTO_MIN = 0x3ec + TCP_BPF_SYN = 0x3ed + TCP_BPF_SYN_IP = 0x3ee + TCP_BPF_SYN_MAC = 0x3ef + BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 + BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 + BPF_DEVCG_ACC_MKNOD = 0x1 + BPF_DEVCG_ACC_READ = 0x2 + BPF_DEVCG_ACC_WRITE = 0x4 + BPF_DEVCG_DEV_BLOCK = 0x1 + BPF_DEVCG_DEV_CHAR = 0x2 + BPF_FIB_LOOKUP_DIRECT = 0x1 + BPF_FIB_LOOKUP_OUTPUT = 0x2 + BPF_FIB_LKUP_RET_SUCCESS = 0x0 + BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 + BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 + BPF_FIB_LKUP_RET_PROHIBIT = 0x3 + BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 + BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 + BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 + BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 + BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 + BPF_FD_TYPE_TRACEPOINT = 0x1 + BPF_FD_TYPE_KPROBE = 0x2 + BPF_FD_TYPE_KRETPROBE = 0x3 + BPF_FD_TYPE_UPROBE = 0x4 + BPF_FD_TYPE_URETPROBE = 0x5 + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 +) + +const ( + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_DECnet_IFADDR = 0xd + RTNLGRP_NOP2 = 0xe + RTNLGRP_DECnet_ROUTE = 0xf + RTNLGRP_DECnet_RULE = 0x10 + RTNLGRP_NOP4 = 0x11 + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + RTNLGRP_PHONET_IFADDR = 0x15 + RTNLGRP_PHONET_ROUTE = 0x16 + RTNLGRP_DCB = 0x17 + RTNLGRP_IPV4_NETCONF = 0x18 + RTNLGRP_IPV6_NETCONF = 0x19 + RTNLGRP_MDB = 0x1a + RTNLGRP_MPLS_ROUTE = 0x1b + RTNLGRP_NSID = 0x1c + RTNLGRP_MPLS_NETCONF = 0x1d + RTNLGRP_IPV4_MROUTE_R = 0x1e + RTNLGRP_IPV6_MROUTE_R = 0x1f + RTNLGRP_NEXTHOP = 0x20 + RTNLGRP_BRVLAN = 0x21 +) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) + +const ( + LO_FLAGS_READ_ONLY = 0x1 + LO_FLAGS_AUTOCLEAR = 0x4 + LO_FLAGS_PARTSCAN = 0x8 + LO_FLAGS_DIRECT_IO = 0x10 +) + +type LoopInfo64 struct { + Device uint64 + Inode uint64 + Rdevice uint64 + Offset uint64 + Sizelimit uint64 + Number uint32 + Encrypt_type uint32 + Encrypt_key_size uint32 + Flags uint32 + File_name [64]uint8 + Crypt_name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 +} + +type TIPCSocketAddr struct { + Ref uint32 + Node uint32 +} + +type TIPCServiceRange struct { + Type uint32 + Lower uint32 + Upper uint32 +} + +type TIPCServiceName struct { + Type uint32 + Instance uint32 + Domain uint32 +} + +type TIPCEvent struct { + Event uint32 + Lower uint32 + Upper uint32 + Port TIPCSocketAddr + S TIPCSubscr +} + +type TIPCGroupReq struct { + Type uint32 + Instance uint32 + Scope uint32 + Flags uint32 +} + +const ( + TIPC_CLUSTER_SCOPE = 0x2 + TIPC_NODE_SCOPE = 0x3 +) + +const ( + SYSLOG_ACTION_CLOSE = 0 + SYSLOG_ACTION_OPEN = 1 + SYSLOG_ACTION_READ = 2 + SYSLOG_ACTION_READ_ALL = 3 + SYSLOG_ACTION_READ_CLEAR = 4 + SYSLOG_ACTION_CLEAR = 5 + SYSLOG_ACTION_CONSOLE_OFF = 6 + SYSLOG_ACTION_CONSOLE_ON = 7 + SYSLOG_ACTION_CONSOLE_LEVEL = 8 + SYSLOG_ACTION_SIZE_UNREAD = 9 + SYSLOG_ACTION_SIZE_BUFFER = 10 +) + +const ( + DEVLINK_CMD_UNSPEC = 0x0 + DEVLINK_CMD_GET = 0x1 + DEVLINK_CMD_SET = 0x2 + DEVLINK_CMD_NEW = 0x3 + DEVLINK_CMD_DEL = 0x4 + DEVLINK_CMD_PORT_GET = 0x5 + DEVLINK_CMD_PORT_SET = 0x6 + DEVLINK_CMD_PORT_NEW = 0x7 + DEVLINK_CMD_PORT_DEL = 0x8 + DEVLINK_CMD_PORT_SPLIT = 0x9 + DEVLINK_CMD_PORT_UNSPLIT = 0xa + DEVLINK_CMD_SB_GET = 0xb + DEVLINK_CMD_SB_SET = 0xc + DEVLINK_CMD_SB_NEW = 0xd + DEVLINK_CMD_SB_DEL = 0xe + DEVLINK_CMD_SB_POOL_GET = 0xf + DEVLINK_CMD_SB_POOL_SET = 0x10 + DEVLINK_CMD_SB_POOL_NEW = 0x11 + DEVLINK_CMD_SB_POOL_DEL = 0x12 + DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 + DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 + DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 + DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 + DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 + DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 + DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 + DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a + DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b + DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c + DEVLINK_CMD_ESWITCH_GET = 0x1d + DEVLINK_CMD_ESWITCH_SET = 0x1e + DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f + DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 + DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 + DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 + DEVLINK_CMD_RESOURCE_SET = 0x23 + DEVLINK_CMD_RESOURCE_DUMP = 0x24 + DEVLINK_CMD_RELOAD = 0x25 + DEVLINK_CMD_PARAM_GET = 0x26 + DEVLINK_CMD_PARAM_SET = 0x27 + DEVLINK_CMD_PARAM_NEW = 0x28 + DEVLINK_CMD_PARAM_DEL = 0x29 + DEVLINK_CMD_REGION_GET = 0x2a + DEVLINK_CMD_REGION_SET = 0x2b + DEVLINK_CMD_REGION_NEW = 0x2c + DEVLINK_CMD_REGION_DEL = 0x2d + DEVLINK_CMD_REGION_READ = 0x2e + DEVLINK_CMD_PORT_PARAM_GET = 0x2f + DEVLINK_CMD_PORT_PARAM_SET = 0x30 + DEVLINK_CMD_PORT_PARAM_NEW = 0x31 + DEVLINK_CMD_PORT_PARAM_DEL = 0x32 + DEVLINK_CMD_INFO_GET = 0x33 + DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 + DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 + DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 + DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 + DEVLINK_CMD_FLASH_UPDATE = 0x3a + DEVLINK_CMD_FLASH_UPDATE_END = 0x3b + DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c + DEVLINK_CMD_TRAP_GET = 0x3d + DEVLINK_CMD_TRAP_SET = 0x3e + DEVLINK_CMD_TRAP_NEW = 0x3f + DEVLINK_CMD_TRAP_DEL = 0x40 + DEVLINK_CMD_TRAP_GROUP_GET = 0x41 + DEVLINK_CMD_TRAP_GROUP_SET = 0x42 + DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 + DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 + DEVLINK_CMD_TRAP_POLICER_GET = 0x45 + DEVLINK_CMD_TRAP_POLICER_SET = 0x46 + DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 + DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 + DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 + DEVLINK_CMD_MAX = 0x49 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 + DEVLINK_PORT_TYPE_IB = 0x3 + DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 + DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 + DEVLINK_ESWITCH_MODE_LEGACY = 0x0 + DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 + DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 + DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 + DEVLINK_PORT_FLAVOUR_CPU = 0x1 + DEVLINK_PORT_FLAVOUR_DSA = 0x2 + DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 + DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 + DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 + DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 + DEVLINK_PARAM_CMODE_RUNTIME = 0x0 + DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 + DEVLINK_PARAM_CMODE_PERMANENT = 0x2 + DEVLINK_PARAM_CMODE_MAX = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 + DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 + DEVLINK_ATTR_STATS_RX_BYTES = 0x1 + DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 + DEVLINK_ATTR_STATS_MAX = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 + DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 + DEVLINK_TRAP_ACTION_DROP = 0x0 + DEVLINK_TRAP_ACTION_TRAP = 0x1 + DEVLINK_TRAP_ACTION_MIRROR = 0x2 + DEVLINK_TRAP_TYPE_DROP = 0x0 + DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 + DEVLINK_TRAP_TYPE_CONTROL = 0x2 + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 + DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 + DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 + DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 + DEVLINK_RELOAD_ACTION_MAX = 0x2 + DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 + DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 + DEVLINK_RELOAD_LIMIT_MAX = 0x1 + DEVLINK_ATTR_UNSPEC = 0x0 + DEVLINK_ATTR_BUS_NAME = 0x1 + DEVLINK_ATTR_DEV_NAME = 0x2 + DEVLINK_ATTR_PORT_INDEX = 0x3 + DEVLINK_ATTR_PORT_TYPE = 0x4 + DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 + DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 + DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 + DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 + DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa + DEVLINK_ATTR_SB_INDEX = 0xb + DEVLINK_ATTR_SB_SIZE = 0xc + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 + DEVLINK_ATTR_SB_POOL_INDEX = 0x11 + DEVLINK_ATTR_SB_POOL_TYPE = 0x12 + DEVLINK_ATTR_SB_POOL_SIZE = 0x13 + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 + DEVLINK_ATTR_SB_THRESHOLD = 0x15 + DEVLINK_ATTR_SB_TC_INDEX = 0x16 + DEVLINK_ATTR_SB_OCC_CUR = 0x17 + DEVLINK_ATTR_SB_OCC_MAX = 0x18 + DEVLINK_ATTR_ESWITCH_MODE = 0x19 + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a + DEVLINK_ATTR_DPIPE_TABLES = 0x1b + DEVLINK_ATTR_DPIPE_TABLE = 0x1c + DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 + DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 + DEVLINK_ATTR_DPIPE_ENTRY = 0x23 + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 + DEVLINK_ATTR_DPIPE_MATCH = 0x28 + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a + DEVLINK_ATTR_DPIPE_ACTION = 0x2b + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d + DEVLINK_ATTR_DPIPE_VALUE = 0x2e + DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 + DEVLINK_ATTR_DPIPE_HEADERS = 0x31 + DEVLINK_ATTR_DPIPE_HEADER = 0x32 + DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 + DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 + DEVLINK_ATTR_DPIPE_FIELD = 0x38 + DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 + DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c + DEVLINK_ATTR_PAD = 0x3d + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e + DEVLINK_ATTR_RESOURCE_LIST = 0x3f + DEVLINK_ATTR_RESOURCE = 0x40 + DEVLINK_ATTR_RESOURCE_NAME = 0x41 + DEVLINK_ATTR_RESOURCE_ID = 0x42 + DEVLINK_ATTR_RESOURCE_SIZE = 0x43 + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 + DEVLINK_ATTR_RESOURCE_UNIT = 0x49 + DEVLINK_ATTR_RESOURCE_OCC = 0x4a + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c + DEVLINK_ATTR_PORT_FLAVOUR = 0x4d + DEVLINK_ATTR_PORT_NUMBER = 0x4e + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f + DEVLINK_ATTR_PARAM = 0x50 + DEVLINK_ATTR_PARAM_NAME = 0x51 + DEVLINK_ATTR_PARAM_GENERIC = 0x52 + DEVLINK_ATTR_PARAM_TYPE = 0x53 + DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 + DEVLINK_ATTR_PARAM_VALUE = 0x55 + DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 + DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 + DEVLINK_ATTR_REGION_NAME = 0x58 + DEVLINK_ATTR_REGION_SIZE = 0x59 + DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a + DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c + DEVLINK_ATTR_REGION_CHUNKS = 0x5d + DEVLINK_ATTR_REGION_CHUNK = 0x5e + DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f + DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 + DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 + DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 + DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 + DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 + DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 + DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 + DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 + DEVLINK_ATTR_FMSG = 0x6a + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c + DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d + DEVLINK_ATTR_FMSG_NEST_END = 0x6e + DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 + DEVLINK_ATTR_HEALTH_REPORTER = 0x72 + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 + DEVLINK_ATTR_STATS = 0x81 + DEVLINK_ATTR_TRAP_NAME = 0x82 + DEVLINK_ATTR_TRAP_ACTION = 0x83 + DEVLINK_ATTR_TRAP_TYPE = 0x84 + DEVLINK_ATTR_TRAP_GENERIC = 0x85 + DEVLINK_ATTR_TRAP_METADATA = 0x86 + DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 + DEVLINK_ATTR_RELOAD_FAILED = 0x88 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 + DEVLINK_ATTR_NETNS_FD = 0x8a + DEVLINK_ATTR_NETNS_PID = 0x8b + DEVLINK_ATTR_NETNS_ID = 0x8c + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d + DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e + DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f + DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 + DEVLINK_ATTR_PORT_FUNCTION = 0x91 + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 + DEVLINK_ATTR_PORT_LANES = 0x93 + DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 + DEVLINK_ATTR_PORT_EXTERNAL = 0x95 + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 + DEVLINK_ATTR_RELOAD_ACTION = 0x99 + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a + DEVLINK_ATTR_RELOAD_LIMITS = 0x9b + DEVLINK_ATTR_DEV_STATS = 0x9c + DEVLINK_ATTR_RELOAD_STATS = 0x9d + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f + DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 + DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 + DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 + DEVLINK_ATTR_MAX = 0xa3 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 + DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 + DEVLINK_DPIPE_HEADER_IPV4 = 0x1 + DEVLINK_DPIPE_HEADER_IPV6 = 0x2 + DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 + DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x1 +) + +type FsverityDigest struct { + Algorithm uint16 + Size uint16 +} + +type FsverityEnableArg struct { + Version uint32 + Hash_algorithm uint32 + Block_size uint32 + Salt_size uint32 + Salt_ptr uint64 + Sig_size uint32 + _ uint32 + Sig_ptr uint64 + _ [11]uint64 +} + +type Nhmsg struct { + Family uint8 + Scope uint8 + Protocol uint8 + Resvd uint8 + Flags uint32 +} + +type NexthopGrp struct { + Id uint32 + Weight uint8 + Resvd1 uint8 + Resvd2 uint16 +} + +const ( + NHA_UNSPEC = 0x0 + NHA_ID = 0x1 + NHA_GROUP = 0x2 + NHA_GROUP_TYPE = 0x3 + NHA_BLACKHOLE = 0x4 + NHA_OIF = 0x5 + NHA_GATEWAY = 0x6 + NHA_ENCAP_TYPE = 0x7 + NHA_ENCAP = 0x8 + NHA_GROUPS = 0x9 + NHA_MASTER = 0xa +) + +const ( + CAN_RAW_FILTER = 0x1 + CAN_RAW_ERR_FILTER = 0x2 + CAN_RAW_LOOPBACK = 0x3 + CAN_RAW_RECV_OWN_MSGS = 0x4 + CAN_RAW_FD_FRAMES = 0x5 + CAN_RAW_JOIN_FILTERS = 0x6 +) + +type WatchdogInfo struct { + Options uint32 + Version uint32 + Identity [32]uint8 +} + +type PPSFData struct { + Info PPSKInfo + Timeout PPSKTime +} + +type PPSKParams struct { + Api_version int32 + Mode int32 + Assert_off_tu PPSKTime + Clear_off_tu PPSKTime +} + +type PPSKTime struct { + Sec int64 + Nsec int32 + Flags uint32 +} + +const ( + LWTUNNEL_ENCAP_NONE = 0x0 + LWTUNNEL_ENCAP_MPLS = 0x1 + LWTUNNEL_ENCAP_IP = 0x2 + LWTUNNEL_ENCAP_ILA = 0x3 + LWTUNNEL_ENCAP_IP6 = 0x4 + LWTUNNEL_ENCAP_SEG6 = 0x5 + LWTUNNEL_ENCAP_BPF = 0x6 + LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 + LWTUNNEL_ENCAP_RPL = 0x8 + LWTUNNEL_ENCAP_MAX = 0x8 + + MPLS_IPTUNNEL_UNSPEC = 0x0 + MPLS_IPTUNNEL_DST = 0x1 + MPLS_IPTUNNEL_TTL = 0x2 + MPLS_IPTUNNEL_MAX = 0x2 +) + +const ( + ETHTOOL_ID_UNSPEC = 0x0 + ETHTOOL_RX_COPYBREAK = 0x1 + ETHTOOL_TX_COPYBREAK = 0x2 + ETHTOOL_PFC_PREVENTION_TOUT = 0x3 + ETHTOOL_TUNABLE_UNSPEC = 0x0 + ETHTOOL_TUNABLE_U8 = 0x1 + ETHTOOL_TUNABLE_U16 = 0x2 + ETHTOOL_TUNABLE_U32 = 0x3 + ETHTOOL_TUNABLE_U64 = 0x4 + ETHTOOL_TUNABLE_STRING = 0x5 + ETHTOOL_TUNABLE_S8 = 0x6 + ETHTOOL_TUNABLE_S16 = 0x7 + ETHTOOL_TUNABLE_S32 = 0x8 + ETHTOOL_TUNABLE_S64 = 0x9 + ETHTOOL_PHY_ID_UNSPEC = 0x0 + ETHTOOL_PHY_DOWNSHIFT = 0x1 + ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 + ETHTOOL_PHY_EDPD = 0x3 + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 + ETHTOOL_FLASH_ALL_REGIONS = 0x0 + ETHTOOL_F_UNSUPPORTED__BIT = 0x0 + ETHTOOL_F_WISH__BIT = 0x1 + ETHTOOL_F_COMPAT__BIT = 0x2 + ETHTOOL_FEC_NONE_BIT = 0x0 + ETHTOOL_FEC_AUTO_BIT = 0x1 + ETHTOOL_FEC_OFF_BIT = 0x2 + ETHTOOL_FEC_RS_BIT = 0x3 + ETHTOOL_FEC_BASER_BIT = 0x4 + ETHTOOL_FEC_LLRS_BIT = 0x5 + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 + ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 + ETHTOOL_LINK_MODE_TP_BIT = 0x7 + ETHTOOL_LINK_MODE_AUI_BIT = 0x8 + ETHTOOL_LINK_MODE_MII_BIT = 0x9 + ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa + ETHTOOL_LINK_MODE_BNC_BIT = 0xb + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc + ETHTOOL_LINK_MODE_Pause_BIT = 0xd + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf + ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 + ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b + + ETHTOOL_MSG_USER_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET = 0x1 + ETHTOOL_MSG_LINKINFO_GET = 0x2 + ETHTOOL_MSG_LINKINFO_SET = 0x3 + ETHTOOL_MSG_LINKMODES_GET = 0x4 + ETHTOOL_MSG_LINKMODES_SET = 0x5 + ETHTOOL_MSG_LINKSTATE_GET = 0x6 + ETHTOOL_MSG_DEBUG_GET = 0x7 + ETHTOOL_MSG_DEBUG_SET = 0x8 + ETHTOOL_MSG_WOL_GET = 0x9 + ETHTOOL_MSG_WOL_SET = 0xa + ETHTOOL_MSG_FEATURES_GET = 0xb + ETHTOOL_MSG_FEATURES_SET = 0xc + ETHTOOL_MSG_PRIVFLAGS_GET = 0xd + ETHTOOL_MSG_PRIVFLAGS_SET = 0xe + ETHTOOL_MSG_RINGS_GET = 0xf + ETHTOOL_MSG_RINGS_SET = 0x10 + ETHTOOL_MSG_CHANNELS_GET = 0x11 + ETHTOOL_MSG_CHANNELS_SET = 0x12 + ETHTOOL_MSG_COALESCE_GET = 0x13 + ETHTOOL_MSG_COALESCE_SET = 0x14 + ETHTOOL_MSG_PAUSE_GET = 0x15 + ETHTOOL_MSG_PAUSE_SET = 0x16 + ETHTOOL_MSG_EEE_GET = 0x17 + ETHTOOL_MSG_EEE_SET = 0x18 + ETHTOOL_MSG_TSINFO_GET = 0x19 + ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b + ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c + ETHTOOL_MSG_USER_MAX = 0x1c + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 + ETHTOOL_MSG_LINKINFO_NTF = 0x3 + ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 + ETHTOOL_MSG_LINKMODES_NTF = 0x5 + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 + ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 + ETHTOOL_MSG_DEBUG_NTF = 0x8 + ETHTOOL_MSG_WOL_GET_REPLY = 0x9 + ETHTOOL_MSG_WOL_NTF = 0xa + ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb + ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc + ETHTOOL_MSG_FEATURES_NTF = 0xd + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe + ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf + ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 + ETHTOOL_MSG_RINGS_NTF = 0x11 + ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 + ETHTOOL_MSG_CHANNELS_NTF = 0x13 + ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 + ETHTOOL_MSG_COALESCE_NTF = 0x15 + ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 + ETHTOOL_MSG_PAUSE_NTF = 0x17 + ETHTOOL_MSG_EEE_GET_REPLY = 0x18 + ETHTOOL_MSG_EEE_NTF = 0x19 + ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a + ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d + ETHTOOL_MSG_KERNEL_MAX = 0x1d + 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_BITSET_BIT_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BIT_INDEX = 0x1 + ETHTOOL_A_BITSET_BIT_NAME = 0x2 + ETHTOOL_A_BITSET_BIT_VALUE = 0x3 + ETHTOOL_A_BITSET_BIT_MAX = 0x3 + ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BITS_BIT = 0x1 + ETHTOOL_A_BITSET_BITS_MAX = 0x1 + ETHTOOL_A_BITSET_UNSPEC = 0x0 + ETHTOOL_A_BITSET_NOMASK = 0x1 + ETHTOOL_A_BITSET_SIZE = 0x2 + ETHTOOL_A_BITSET_BITS = 0x3 + ETHTOOL_A_BITSET_VALUE = 0x4 + ETHTOOL_A_BITSET_MASK = 0x5 + ETHTOOL_A_BITSET_MAX = 0x5 + ETHTOOL_A_STRING_UNSPEC = 0x0 + ETHTOOL_A_STRING_INDEX = 0x1 + ETHTOOL_A_STRING_VALUE = 0x2 + ETHTOOL_A_STRING_MAX = 0x2 + ETHTOOL_A_STRINGS_UNSPEC = 0x0 + ETHTOOL_A_STRINGS_STRING = 0x1 + ETHTOOL_A_STRINGS_MAX = 0x1 + ETHTOOL_A_STRINGSET_UNSPEC = 0x0 + ETHTOOL_A_STRINGSET_ID = 0x1 + ETHTOOL_A_STRINGSET_COUNT = 0x2 + ETHTOOL_A_STRINGSET_STRINGS = 0x3 + ETHTOOL_A_STRINGSET_MAX = 0x3 + ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 + ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 + ETHTOOL_A_STRINGSETS_MAX = 0x1 + ETHTOOL_A_STRSET_UNSPEC = 0x0 + ETHTOOL_A_STRSET_HEADER = 0x1 + ETHTOOL_A_STRSET_STRINGSETS = 0x2 + ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 + ETHTOOL_A_STRSET_MAX = 0x3 + ETHTOOL_A_LINKINFO_UNSPEC = 0x0 + ETHTOOL_A_LINKINFO_HEADER = 0x1 + ETHTOOL_A_LINKINFO_PORT = 0x2 + ETHTOOL_A_LINKINFO_PHYADDR = 0x3 + ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 + ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 + ETHTOOL_A_LINKINFO_MAX = 0x6 + ETHTOOL_A_LINKMODES_UNSPEC = 0x0 + ETHTOOL_A_LINKMODES_HEADER = 0x1 + ETHTOOL_A_LINKMODES_AUTONEG = 0x2 + ETHTOOL_A_LINKMODES_OURS = 0x3 + ETHTOOL_A_LINKMODES_PEER = 0x4 + ETHTOOL_A_LINKMODES_SPEED = 0x5 + ETHTOOL_A_LINKMODES_DUPLEX = 0x6 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 + ETHTOOL_A_LINKMODES_MAX = 0x8 + ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 + ETHTOOL_A_LINKSTATE_HEADER = 0x1 + ETHTOOL_A_LINKSTATE_LINK = 0x2 + ETHTOOL_A_LINKSTATE_SQI = 0x3 + ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 + ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 + ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 + ETHTOOL_A_LINKSTATE_MAX = 0x6 + ETHTOOL_A_DEBUG_UNSPEC = 0x0 + ETHTOOL_A_DEBUG_HEADER = 0x1 + ETHTOOL_A_DEBUG_MSGMASK = 0x2 + ETHTOOL_A_DEBUG_MAX = 0x2 + ETHTOOL_A_WOL_UNSPEC = 0x0 + ETHTOOL_A_WOL_HEADER = 0x1 + ETHTOOL_A_WOL_MODES = 0x2 + ETHTOOL_A_WOL_SOPASS = 0x3 + ETHTOOL_A_WOL_MAX = 0x3 + ETHTOOL_A_FEATURES_UNSPEC = 0x0 + ETHTOOL_A_FEATURES_HEADER = 0x1 + ETHTOOL_A_FEATURES_HW = 0x2 + ETHTOOL_A_FEATURES_WANTED = 0x3 + ETHTOOL_A_FEATURES_ACTIVE = 0x4 + ETHTOOL_A_FEATURES_NOCHANGE = 0x5 + ETHTOOL_A_FEATURES_MAX = 0x5 + ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 + ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 + ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 + ETHTOOL_A_PRIVFLAGS_MAX = 0x2 + ETHTOOL_A_RINGS_UNSPEC = 0x0 + ETHTOOL_A_RINGS_HEADER = 0x1 + ETHTOOL_A_RINGS_RX_MAX = 0x2 + ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 + ETHTOOL_A_RINGS_TX_MAX = 0x5 + ETHTOOL_A_RINGS_RX = 0x6 + ETHTOOL_A_RINGS_RX_MINI = 0x7 + ETHTOOL_A_RINGS_RX_JUMBO = 0x8 + ETHTOOL_A_RINGS_TX = 0x9 + ETHTOOL_A_RINGS_MAX = 0x9 + ETHTOOL_A_CHANNELS_UNSPEC = 0x0 + ETHTOOL_A_CHANNELS_HEADER = 0x1 + ETHTOOL_A_CHANNELS_RX_MAX = 0x2 + ETHTOOL_A_CHANNELS_TX_MAX = 0x3 + ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 + ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 + ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 + ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 + ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 + ETHTOOL_A_CHANNELS_MAX = 0x9 + ETHTOOL_A_COALESCE_UNSPEC = 0x0 + ETHTOOL_A_COALESCE_HEADER = 0x1 + ETHTOOL_A_COALESCE_RX_USECS = 0x2 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 + ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 + ETHTOOL_A_COALESCE_TX_USECS = 0x6 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 + ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 + ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa + ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb + ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc + ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd + ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf + ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 + ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 + ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 + ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 + ETHTOOL_A_COALESCE_MAX = 0x17 + ETHTOOL_A_PAUSE_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_HEADER = 0x1 + ETHTOOL_A_PAUSE_AUTONEG = 0x2 + ETHTOOL_A_PAUSE_RX = 0x3 + ETHTOOL_A_PAUSE_TX = 0x4 + ETHTOOL_A_PAUSE_STATS = 0x5 + ETHTOOL_A_PAUSE_MAX = 0x5 + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_STAT_PAD = 0x1 + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 + ETHTOOL_A_PAUSE_STAT_MAX = 0x3 + ETHTOOL_A_EEE_UNSPEC = 0x0 + ETHTOOL_A_EEE_HEADER = 0x1 + ETHTOOL_A_EEE_MODES_OURS = 0x2 + ETHTOOL_A_EEE_MODES_PEER = 0x3 + ETHTOOL_A_EEE_ACTIVE = 0x4 + ETHTOOL_A_EEE_ENABLED = 0x5 + ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 + ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 + ETHTOOL_A_EEE_MAX = 0x7 + ETHTOOL_A_TSINFO_UNSPEC = 0x0 + ETHTOOL_A_TSINFO_HEADER = 0x1 + ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 + 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_CABLE_TEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_MAX = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 + ETHTOOL_A_CABLE_PAIR_A = 0x0 + ETHTOOL_A_CABLE_PAIR_B = 0x1 + ETHTOOL_A_CABLE_PAIR_C = 0x2 + ETHTOOL_A_CABLE_PAIR_D = 0x3 + 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_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_TEST_NTF_STATUS_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 + ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_NEST_RESULT = 0x1 + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 + ETHTOOL_A_CABLE_NEST_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 + ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 + ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_PULSE_mV = 0x1 + ETHTOOL_A_CABLE_PULSE_MAX = 0x1 + ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 + ETHTOOL_A_CABLE_STEP_MAX = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 + ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 + ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 + ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 + ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 + ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 + ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 + ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 + ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 + ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go new file mode 100644 index 0000000..088bd77 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -0,0 +1,619 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [1]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type DmNameList struct { + Dev uint64 + Next uint32 +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [122]int8 + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go new file mode 100644 index 0000000..078d958 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -0,0 +1,637 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [3]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go new file mode 100644 index 0000000..2d39122 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -0,0 +1,614 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Uregs [18]uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [122]uint8 + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go new file mode 100644 index 0000000..304cbd0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -0,0 +1,616 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go new file mode 100644 index 0000000..7d9d570 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -0,0 +1,620 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [122]int8 + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go new file mode 100644 index 0000000..a1eb257 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -0,0 +1,619 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go new file mode 100644 index 0000000..2e5ce3b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -0,0 +1,619 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64le,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go new file mode 100644 index 0000000..bbaa120 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -0,0 +1,620 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mipsle,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [122]int8 + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go new file mode 100644 index 0000000..0e6e8a7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -0,0 +1,626 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]uint8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go new file mode 100644 index 0000000..7382f38 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -0,0 +1,626 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build ppc64le,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]uint8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go new file mode 100644 index 0000000..28d5522 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -0,0 +1,644 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build riscv64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Pc uint64 + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T0 uint64 + T1 uint64 + T2 uint64 + S0 uint64 + S1 uint64 + A0 uint64 + A1 uint64 + A2 uint64 + A3 uint64 + A4 uint64 + A5 uint64 + A6 uint64 + A7 uint64 + S2 uint64 + S3 uint64 + S4 uint64 + S5 uint64 + S6 uint64 + S7 uint64 + S8 uint64 + S9 uint64 + S10 uint64 + S11 uint64 + T3 uint64 + T4 uint64 + T5 uint64 + T6 uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]uint8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go new file mode 100644 index 0000000..a91a7a4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -0,0 +1,640 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build s390x,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x6 + FADV_NOREUSE = 0x7 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Psw PtracePsw + Gprs [16]uint64 + Acrs [16]uint32 + Orig_gpr2 uint64 + Fp_regs PtraceFpregs + Per_info PtracePer + Ieee_instruction_pointer uint64 +} + +type PtracePsw struct { + Mask uint64 + Addr uint64 +} + +type PtraceFpregs struct { + Fpc uint32 + Fprs [16]float64 +} + +type PtracePer struct { + _ [0]uint64 + _ [32]byte + Starting_addr uint64 + Ending_addr uint64 + Perc_atmid uint16 + Address uint64 + Access_id uint8 + _ [7]byte +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen uint32 + Frsize uint32 + Flags uint32 + Spare [4]uint32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint64 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go new file mode 100644 index 0000000..f824b23 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -0,0 +1,621 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build sparc64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ int16 + _ [2]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [16]uint64 + Tstate uint64 + Tpc uint64 + Tnpc uint64 + Y uint32 + Magic uint32 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x800 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +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 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go new file mode 100644 index 0000000..3f11f88 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -0,0 +1,499 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,netbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x84 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData + Pad_cgo_1 [4]byte +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go new file mode 100644 index 0000000..0bed83a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -0,0 +1,507 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,netbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go new file mode 100644 index 0000000..e4e3bf7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -0,0 +1,504 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,netbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 + Pad_cgo_0 [4]byte +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go new file mode 100644 index 0000000..efac861 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -0,0 +1,507 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,netbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go new file mode 100644 index 0000000..80fa295 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -0,0 +1,572 @@ +// cgo -godefs types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build 386,openbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_0 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xec + SizeofIfData = 0xd4 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Pad 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 + Capabilities uint32 + Lastchange Timeval + Mclpool [7]Mclpool +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct { + Grown int32 + Alive uint16 + Hwm uint16 + Cwm uint16 + Lwm uint16 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Anonpages int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Nanonneeded int32 + Nfreeanon int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Obsolete_swapins int32 + Obsolete_swapouts int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Zeroaborts int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Pdreanon int32 + Pdrevnode int32 + Pdrevtext int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go new file mode 100644 index 0000000..560dd6d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -0,0 +1,572 @@ +// cgo -godefs types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ [4]byte + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + _ [4]byte + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + _ [4]byte + Iov *Iovec + Iovlen uint32 + _ [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + _ [4]byte + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + _ [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Anonpages int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Nanonneeded int32 + Nfreeanon int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Obsolete_swapins int32 + Obsolete_swapouts int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Zeroaborts int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Pdreanon int32 + Pdrevnode int32 + Pdrevtext int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go new file mode 100644 index 0000000..0c1700f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -0,0 +1,573 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm,openbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ [4]byte + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + _ [4]byte + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + _ [4]byte + Data int64 + Udata *byte + _ [4]byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + _ [4]byte + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go new file mode 100644 index 0000000..5b3e466 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -0,0 +1,566 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go new file mode 100644 index 0000000..62bff16 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -0,0 +1,566 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build mips64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 + AT_SYMLINK_NOFOLLOW = 0x2 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go new file mode 100644 index 0000000..ca512af --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -0,0 +1,441 @@ +// cgo -godefs types_solaris.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build amd64,solaris + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x400 + MaxHostNameLen = 0x100 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int64 + Fstype [16]int8 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Sysid int32 + Pid int32 + Pad [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Name [1]int8 + _ [5]byte +} + +type _Fsblkcnt_t uint64 + +type Statvfs_t struct { + Bsize uint64 + Frsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fsid uint64 + Basetype [16]int8 + Flag uint64 + Namemax uint64 + Fstr [32]int8 +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + _ uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [236]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *int8 + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Accrights *int8 + Accrightslen int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x20 + SizeofSockaddrAny = 0xfc + SizeofSockaddrUnix = 0x6e + SizeofSockaddrDatalink = 0xfc + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x24 + SizeofICMPv6Filter = 0x20 +) + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [257]byte + Nodename [257]byte + Release [257]byte + Version [257]byte + Machine [257]byte +} + +type Ustat_t struct { + Tfree int64 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +const ( + AT_FDCWD = 0xffd19553 + AT_SYMLINK_NOFOLLOW = 0x1000 + AT_SYMLINK_FOLLOW = 0x2000 + AT_REMOVEDIR = 0x1 + AT_EACCESS = 0x4 +) + +const ( + SizeofIfMsghdr = 0x54 + SizeofIfData = 0x44 + SizeofIfaMsghdr = 0x14 + SizeofRtMsghdr = 0x4c + SizeofRtMetrics = 0x28 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + _ [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + _ [1]byte +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line int8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/golang.org/x/text/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/golang.org/x/text/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/text/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/text/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go new file mode 100644 index 0000000..48ec64b --- /dev/null +++ b/vendor/golang.org/x/text/transform/transform.go @@ -0,0 +1,709 @@ +// Copyright 2013 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 transform provides reader and writer wrappers that transform the +// bytes passing through as well as various transformations. Example +// transformations provided by other packages include normalization and +// conversion between character sets. +package transform // import "golang.org/x/text/transform" + +import ( + "bytes" + "errors" + "io" + "unicode/utf8" +) + +var ( + // ErrShortDst means that the destination buffer was too short to + // receive all of the transformed bytes. + ErrShortDst = errors.New("transform: short destination buffer") + + // ErrShortSrc means that the source buffer has insufficient data to + // complete the transformation. + ErrShortSrc = errors.New("transform: short source buffer") + + // ErrEndOfSpan means that the input and output (the transformed input) + // are not identical. + ErrEndOfSpan = errors.New("transform: input and output are not identical") + + // errInconsistentByteCount means that Transform returned success (nil + // error) but also returned nSrc inconsistent with the src argument. + errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") + + // errShortInternal means that an internal buffer is not large enough + // to make progress and the Transform operation must be aborted. + errShortInternal = errors.New("transform: short internal buffer") +) + +// Transformer transforms bytes. +type Transformer interface { + // Transform writes to dst the transformed bytes read from src, and + // returns the number of dst bytes written and src bytes read. The + // atEOF argument tells whether src represents the last bytes of the + // input. + // + // Callers should always process the nDst bytes produced and account + // for the nSrc bytes consumed before considering the error err. + // + // A nil error means that all of the transformed bytes (whether freshly + // transformed from src or left over from previous Transform calls) + // were written to dst. A nil error can be returned regardless of + // whether atEOF is true. If err is nil then nSrc must equal len(src); + // the converse is not necessarily true. + // + // ErrShortDst means that dst was too short to receive all of the + // transformed bytes. ErrShortSrc means that src had insufficient data + // to complete the transformation. If both conditions apply, then + // either error may be returned. Other than the error conditions listed + // here, implementations are free to report other errors that arise. + Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) + + // Reset resets the state and allows a Transformer to be reused. + Reset() +} + +// SpanningTransformer extends the Transformer interface with a Span method +// that determines how much of the input already conforms to the Transformer. +type SpanningTransformer interface { + Transformer + + // Span returns a position in src such that transforming src[:n] results in + // identical output src[:n] for these bytes. It does not necessarily return + // the largest such n. The atEOF argument tells whether src represents the + // last bytes of the input. + // + // Callers should always account for the n bytes consumed before + // considering the error err. + // + // A nil error means that all input bytes are known to be identical to the + // output produced by the Transformer. A nil error can be returned + // regardless of whether atEOF is true. If err is nil, then n must + // equal len(src); the converse is not necessarily true. + // + // ErrEndOfSpan means that the Transformer output may differ from the + // input after n bytes. Note that n may be len(src), meaning that the output + // would contain additional bytes after otherwise identical output. + // ErrShortSrc means that src had insufficient data to determine whether the + // remaining bytes would change. Other than the error conditions listed + // here, implementations are free to report other errors that arise. + // + // Calling Span can modify the Transformer state as a side effect. In + // effect, it does the transformation just as calling Transform would, only + // without copying to a destination buffer and only up to a point it can + // determine the input and output bytes are the same. This is obviously more + // limited than calling Transform, but can be more efficient in terms of + // copying and allocating buffers. Calls to Span and Transform may be + // interleaved. + Span(src []byte, atEOF bool) (n int, err error) +} + +// NopResetter can be embedded by implementations of Transformer to add a nop +// Reset method. +type NopResetter struct{} + +// Reset implements the Reset method of the Transformer interface. +func (NopResetter) Reset() {} + +// Reader wraps another io.Reader by transforming the bytes read. +type Reader struct { + r io.Reader + t Transformer + err error + + // dst[dst0:dst1] contains bytes that have been transformed by t but + // not yet copied out via Read. + dst []byte + dst0, dst1 int + + // src[src0:src1] contains bytes that have been read from r but not + // yet transformed through t. + src []byte + src0, src1 int + + // transformComplete is whether the transformation is complete, + // regardless of whether or not it was successful. + transformComplete bool +} + +const defaultBufSize = 4096 + +// NewReader returns a new Reader that wraps r by transforming the bytes read +// via t. It calls Reset on t. +func NewReader(r io.Reader, t Transformer) *Reader { + t.Reset() + return &Reader{ + r: r, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Read implements the io.Reader interface. +func (r *Reader) Read(p []byte) (int, error) { + n, err := 0, error(nil) + for { + // Copy out any transformed bytes and return the final error if we are done. + if r.dst0 != r.dst1 { + n = copy(p, r.dst[r.dst0:r.dst1]) + r.dst0 += n + if r.dst0 == r.dst1 && r.transformComplete { + return n, r.err + } + return n, nil + } else if r.transformComplete { + return 0, r.err + } + + // Try to transform some source bytes, or to flush the transformer if we + // are out of source bytes. We do this even if r.r.Read returned an error. + // As the io.Reader documentation says, "process the n > 0 bytes returned + // before considering the error". + if r.src0 != r.src1 || r.err != nil { + r.dst0 = 0 + r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) + r.src0 += n + + switch { + case err == nil: + if r.src0 != r.src1 { + r.err = errInconsistentByteCount + } + // The Transform call was successful; we are complete if we + // cannot read more bytes into src. + r.transformComplete = r.err != nil + continue + case err == ErrShortDst && (r.dst1 != 0 || n != 0): + // Make room in dst by copying out, and try again. + continue + case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: + // Read more bytes into src via the code below, and try again. + default: + r.transformComplete = true + // The reader error (r.err) takes precedence over the + // transformer error (err) unless r.err is nil or io.EOF. + if r.err == nil || r.err == io.EOF { + r.err = err + } + continue + } + } + + // Move any untransformed source bytes to the start of the buffer + // and read more bytes. + if r.src0 != 0 { + r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) + } + n, r.err = r.r.Read(r.src[r.src1:]) + r.src1 += n + } +} + +// TODO: implement ReadByte (and ReadRune??). + +// Writer wraps another io.Writer by transforming the bytes read. +// The user needs to call Close to flush unwritten bytes that may +// be buffered. +type Writer struct { + w io.Writer + t Transformer + dst []byte + + // src[:n] contains bytes that have not yet passed through t. + src []byte + n int +} + +// NewWriter returns a new Writer that wraps w by transforming the bytes written +// via t. It calls Reset on t. +func NewWriter(w io.Writer, t Transformer) *Writer { + t.Reset() + return &Writer{ + w: w, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Write implements the io.Writer interface. If there are not enough +// bytes available to complete a Transform, the bytes will be buffered +// for the next write. Call Close to convert the remaining bytes. +func (w *Writer) Write(data []byte) (n int, err error) { + src := data + if w.n > 0 { + // Append bytes from data to the last remainder. + // TODO: limit the amount copied on first try. + n = copy(w.src[w.n:], data) + w.n += n + src = w.src[:w.n] + } + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, false) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return n, werr + } + src = src[nSrc:] + if w.n == 0 { + n += nSrc + } else if len(src) <= n { + // Enough bytes from w.src have been consumed. We make src point + // to data instead to reduce the copying. + w.n = 0 + n -= len(src) + src = data[n:] + if n < len(data) && (err == nil || err == ErrShortSrc) { + continue + } + } + switch err { + case ErrShortDst: + // This error is okay as long as we are making progress. + if nDst > 0 || nSrc > 0 { + continue + } + case ErrShortSrc: + if len(src) < len(w.src) { + m := copy(w.src, src) + // If w.n > 0, bytes from data were already copied to w.src and n + // was already set to the number of bytes consumed. + if w.n == 0 { + n += m + } + w.n = m + err = nil + } else if nDst > 0 || nSrc > 0 { + // Not enough buffer to store the remainder. Keep processing as + // long as there is progress. Without this case, transforms that + // require a lookahead larger than the buffer may result in an + // error. This is not something one may expect to be common in + // practice, but it may occur when buffers are set to small + // sizes during testing. + continue + } + case nil: + if w.n > 0 { + err = errInconsistentByteCount + } + } + return n, err + } +} + +// Close implements the io.Closer interface. +func (w *Writer) Close() error { + src := w.src[:w.n] + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, true) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return werr + } + if err != ErrShortDst { + return err + } + src = src[nSrc:] + } +} + +type nop struct{ NopResetter } + +func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + err = ErrShortDst + } + return n, n, err +} + +func (nop) Span(src []byte, atEOF bool) (n int, err error) { + return len(src), nil +} + +type discard struct{ NopResetter } + +func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return 0, len(src), nil +} + +var ( + // Discard is a Transformer for which all Transform calls succeed + // by consuming all bytes and writing nothing. + Discard Transformer = discard{} + + // Nop is a SpanningTransformer that copies src to dst. + Nop SpanningTransformer = nop{} +) + +// chain is a sequence of links. A chain with N Transformers has N+1 links and +// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst +// buffers given to chain.Transform and the middle N-1 buffers are intermediate +// buffers owned by the chain. The i'th link transforms bytes from the i'th +// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer +// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). +type chain struct { + link []link + err error + // errStart is the index at which the error occurred plus 1. Processing + // errStart at this level at the next call to Transform. As long as + // errStart > 0, chain will not consume any more source bytes. + errStart int +} + +func (c *chain) fatalError(errIndex int, err error) { + if i := errIndex + 1; i > c.errStart { + c.errStart = i + c.err = err + } +} + +type link struct { + t Transformer + // b[p:n] holds the bytes to be transformed by t. + b []byte + p int + n int +} + +func (l *link) src() []byte { + return l.b[l.p:l.n] +} + +func (l *link) dst() []byte { + return l.b[l.n:] +} + +// Chain returns a Transformer that applies t in sequence. +func Chain(t ...Transformer) Transformer { + if len(t) == 0 { + return nop{} + } + c := &chain{link: make([]link, len(t)+1)} + for i, tt := range t { + c.link[i].t = tt + } + // Allocate intermediate buffers. + b := make([][defaultBufSize]byte, len(t)-1) + for i := range b { + c.link[i+1].b = b[i][:] + } + return c +} + +// Reset resets the state of Chain. It calls Reset on all the Transformers. +func (c *chain) Reset() { + for i, l := range c.link { + if l.t != nil { + l.t.Reset() + } + c.link[i].p, c.link[i].n = 0, 0 + } +} + +// TODO: make chain use Span (is going to be fun to implement!) + +// Transform applies the transformers of c in sequence. +func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Set up src and dst in the chain. + srcL := &c.link[0] + dstL := &c.link[len(c.link)-1] + srcL.b, srcL.p, srcL.n = src, 0, len(src) + dstL.b, dstL.n = dst, 0 + var lastFull, needProgress bool // for detecting progress + + // i is the index of the next Transformer to apply, for i in [low, high]. + // low is the lowest index for which c.link[low] may still produce bytes. + // high is the highest index for which c.link[high] has a Transformer. + // The error returned by Transform determines whether to increase or + // decrease i. We try to completely fill a buffer before converting it. + for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { + in, out := &c.link[i], &c.link[i+1] + nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) + out.n += nDst + in.p += nSrc + if i > 0 && in.p == in.n { + in.p, in.n = 0, 0 + } + needProgress, lastFull = lastFull, false + switch err0 { + case ErrShortDst: + // Process the destination buffer next. Return if we are already + // at the high index. + if i == high { + return dstL.n, srcL.p, ErrShortDst + } + if out.n != 0 { + i++ + // If the Transformer at the next index is not able to process any + // source bytes there is nothing that can be done to make progress + // and the bytes will remain unprocessed. lastFull is used to + // detect this and break out of the loop with a fatal error. + lastFull = true + continue + } + // The destination buffer was too small, but is completely empty. + // Return a fatal error as this transformation can never complete. + c.fatalError(i, errShortInternal) + case ErrShortSrc: + if i == 0 { + // Save ErrShortSrc in err. All other errors take precedence. + err = ErrShortSrc + break + } + // Source bytes were depleted before filling up the destination buffer. + // Verify we made some progress, move the remaining bytes to the errStart + // and try to get more source bytes. + if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { + // There were not enough source bytes to proceed while the source + // buffer cannot hold any more bytes. Return a fatal error as this + // transformation can never complete. + c.fatalError(i, errShortInternal) + break + } + // in.b is an internal buffer and we can make progress. + in.p, in.n = 0, copy(in.b, in.src()) + fallthrough + case nil: + // if i == low, we have depleted the bytes at index i or any lower levels. + // In that case we increase low and i. In all other cases we decrease i to + // fetch more bytes before proceeding to the next index. + if i > low { + i-- + continue + } + default: + c.fatalError(i, err0) + } + // Exhausted level low or fatal error: increase low and continue + // to process the bytes accepted so far. + i++ + low = i + } + + // If c.errStart > 0, this means we found a fatal error. We will clear + // all upstream buffers. At this point, no more progress can be made + // downstream, as Transform would have bailed while handling ErrShortDst. + if c.errStart > 0 { + for i := 1; i < c.errStart; i++ { + c.link[i].p, c.link[i].n = 0, 0 + } + err, c.errStart, c.err = c.err, 0, nil + } + return dstL.n, srcL.p, err +} + +// Deprecated: Use runes.Remove instead. +func RemoveFunc(f func(r rune) bool) Transformer { + return removeF(f) +} + +type removeF func(r rune) bool + +func (removeF) Reset() {} + +// Transform implements the Transformer interface. +func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { + + if r = rune(src[0]); r < utf8.RuneSelf { + sz = 1 + } else { + r, sz = utf8.DecodeRune(src) + + if sz == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src) { + err = ErrShortSrc + break + } + // We replace illegal bytes with RuneError. Not doing so might + // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. + // The resulting byte sequence may subsequently contain runes + // for which t(r) is true that were passed unnoticed. + if !t(r) { + if nDst+3 > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], "\uFFFD") + } + nSrc++ + continue + } + } + + if !t(r) { + if nDst+sz > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], src[:sz]) + } + nSrc += sz + } + return +} + +// grow returns a new []byte that is longer than b, and copies the first n bytes +// of b to the start of the new slice. +func grow(b []byte, n int) []byte { + m := len(b) + if m <= 32 { + m = 64 + } else if m <= 256 { + m *= 2 + } else { + m += m >> 1 + } + buf := make([]byte, m) + copy(buf, b[:n]) + return buf +} + +const initialBufSize = 128 + +// String returns a string with the result of converting s[:n] using t, where +// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. +func String(t Transformer, s string) (result string, n int, err error) { + t.Reset() + if s == "" { + // Fast path for the common case for empty input. Results in about a + // 86% reduction of running time for BenchmarkStringLowerEmpty. + if _, _, err := t.Transform(nil, nil, true); err == nil { + return "", 0, nil + } + } + + // Allocate only once. Note that both dst and src escape when passed to + // Transform. + buf := [2 * initialBufSize]byte{} + dst := buf[:initialBufSize:initialBufSize] + src := buf[initialBufSize : 2*initialBufSize] + + // The input string s is transformed in multiple chunks (starting with a + // chunk size of initialBufSize). nDst and nSrc are per-chunk (or + // per-Transform-call) indexes, pDst and pSrc are overall indexes. + nDst, nSrc := 0, 0 + pDst, pSrc := 0, 0 + + // pPrefix is the length of a common prefix: the first pPrefix bytes of the + // result will equal the first pPrefix bytes of s. It is not guaranteed to + // be the largest such value, but if pPrefix, len(result) and len(s) are + // all equal after the final transform (i.e. calling Transform with atEOF + // being true returned nil error) then we don't need to allocate a new + // result string. + pPrefix := 0 + for { + // Invariant: pDst == pPrefix && pSrc == pPrefix. + + n := copy(src, s[pSrc:]) + nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // TODO: let transformers implement an optional Spanner interface, akin + // to norm's QuickSpan. This would even allow us to avoid any allocation. + if !bytes.Equal(dst[:nDst], src[:nSrc]) { + break + } + pPrefix = pSrc + if err == ErrShortDst { + // A buffer can only be short if a transformer modifies its input. + break + } else if err == ErrShortSrc { + if nSrc == 0 { + // No progress was made. + break + } + // Equal so far and !atEOF, so continue checking. + } else if err != nil || pPrefix == len(s) { + return string(s[:pPrefix]), pPrefix, err + } + } + // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. + + // We have transformed the first pSrc bytes of the input s to become pDst + // transformed bytes. Those transformed bytes are discontiguous: the first + // pPrefix of them equal s[:pPrefix] and the last nDst of them equal + // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so + // that they become one contiguous slice: dst[:pDst]. + if pPrefix != 0 { + newDst := dst + if pDst > len(newDst) { + newDst = make([]byte, len(s)+nDst-nSrc) + } + copy(newDst[pPrefix:pDst], dst[:nDst]) + copy(newDst[:pPrefix], s[:pPrefix]) + dst = newDst + } + + // Prevent duplicate Transform calls with atEOF being true at the end of + // the input. Also return if we have an unrecoverable error. + if (err == nil && pSrc == len(s)) || + (err != nil && err != ErrShortDst && err != ErrShortSrc) { + return string(dst[:pDst]), pSrc, err + } + + // Transform the remaining input, growing dst and src buffers as necessary. + for { + n := copy(src, s[pSrc:]) + atEOF := pSrc+n == len(s) + nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF) + pDst += nDst + pSrc += nSrc + + // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can + // make progress. This may avoid excessive allocations. + if err == ErrShortDst { + if nDst == 0 { + dst = grow(dst, pDst) + } + } else if err == ErrShortSrc { + if atEOF { + return string(dst[:pDst]), pSrc, err + } + if nSrc == 0 { + src = grow(src, 0) + } + } else if err != nil || pSrc == len(s) { + return string(dst[:pDst]), pSrc, err + } + } +} + +// Bytes returns a new byte slice with the result of converting b[:n] using t, +// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. +func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { + return doAppend(t, 0, make([]byte, len(b)), b) +} + +// Append appends the result of converting src[:n] using t to dst, where +// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. +func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { + if len(dst) == cap(dst) { + n := len(src) + len(dst) // It is okay for this to be 0. + b := make([]byte, n) + dst = b[:copy(b, dst)] + } + return doAppend(t, len(dst), dst[:cap(dst)], src) +} + +func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { + t.Reset() + pSrc := 0 + for { + nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) + pDst += nDst + pSrc += nSrc + if err != ErrShortDst { + return dst[:pDst], pSrc, err + } + + // Grow the destination buffer, but do not grow as long as we can make + // progress. This may avoid excessive allocations. + if nDst == 0 { + dst = grow(dst, pDst) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go new file mode 100644 index 0000000..e2087bc --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/composition.go @@ -0,0 +1,512 @@ +// Copyright 2011 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 norm + +import "unicode/utf8" + +const ( + maxNonStarters = 30 + // The maximum number of characters needed for a buffer is + // maxNonStarters + 1 for the starter + 1 for the GCJ + maxBufferSize = maxNonStarters + 2 + maxNFCExpansion = 3 // NFC(0x1D160) + maxNFKCExpansion = 18 // NFKC(0xFDFA) + + maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128 +) + +// ssState is used for reporting the segment state after inserting a rune. +// It is returned by streamSafe.next. +type ssState int + +const ( + // Indicates a rune was successfully added to the segment. + ssSuccess ssState = iota + // Indicates a rune starts a new segment and should not be added. + ssStarter + // Indicates a rune caused a segment overflow and a CGJ should be inserted. + ssOverflow +) + +// streamSafe implements the policy of when a CGJ should be inserted. +type streamSafe uint8 + +// first inserts the first rune of a segment. It is a faster version of next if +// it is known p represents the first rune in a segment. +func (ss *streamSafe) first(p Properties) { + *ss = streamSafe(p.nTrailingNonStarters()) +} + +// insert returns a ssState value to indicate whether a rune represented by p +// can be inserted. +func (ss *streamSafe) next(p Properties) ssState { + if *ss > maxNonStarters { + panic("streamSafe was not reset") + } + n := p.nLeadingNonStarters() + if *ss += streamSafe(n); *ss > maxNonStarters { + *ss = 0 + return ssOverflow + } + // The Stream-Safe Text Processing prescribes that the counting can stop + // as soon as a starter is encountered. However, there are some starters, + // like Jamo V and T, that can combine with other runes, leaving their + // successive non-starters appended to the previous, possibly causing an + // overflow. We will therefore consider any rune with a non-zero nLead to + // be a non-starter. Note that it always hold that if nLead > 0 then + // nLead == nTrail. + if n == 0 { + *ss = streamSafe(p.nTrailingNonStarters()) + return ssStarter + } + return ssSuccess +} + +// backwards is used for checking for overflow and segment starts +// when traversing a string backwards. Users do not need to call first +// for the first rune. The state of the streamSafe retains the count of +// the non-starters loaded. +func (ss *streamSafe) backwards(p Properties) ssState { + if *ss > maxNonStarters { + panic("streamSafe was not reset") + } + c := *ss + streamSafe(p.nTrailingNonStarters()) + if c > maxNonStarters { + return ssOverflow + } + *ss = c + if p.nLeadingNonStarters() == 0 { + return ssStarter + } + return ssSuccess +} + +func (ss streamSafe) isMax() bool { + return ss == maxNonStarters +} + +// GraphemeJoiner is inserted after maxNonStarters non-starter runes. +const GraphemeJoiner = "\u034F" + +// reorderBuffer is used to normalize a single segment. Characters inserted with +// insert are decomposed and reordered based on CCC. The compose method can +// be used to recombine characters. Note that the byte buffer does not hold +// the UTF-8 characters in order. Only the rune array is maintained in sorted +// order. flush writes the resulting segment to a byte array. +type reorderBuffer struct { + rune [maxBufferSize]Properties // Per character info. + byte [maxByteBufferSize]byte // UTF-8 buffer. Referenced by runeInfo.pos. + nbyte uint8 // Number or bytes. + ss streamSafe // For limiting length of non-starter sequence. + nrune int // Number of runeInfos. + f formInfo + + src input + nsrc int + tmpBytes input + + out []byte + flushF func(*reorderBuffer) bool +} + +func (rb *reorderBuffer) init(f Form, src []byte) { + rb.f = *formTable[f] + rb.src.setBytes(src) + rb.nsrc = len(src) + rb.ss = 0 +} + +func (rb *reorderBuffer) initString(f Form, src string) { + rb.f = *formTable[f] + rb.src.setString(src) + rb.nsrc = len(src) + rb.ss = 0 +} + +func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) { + rb.out = out + rb.flushF = f +} + +// reset discards all characters from the buffer. +func (rb *reorderBuffer) reset() { + rb.nrune = 0 + rb.nbyte = 0 +} + +func (rb *reorderBuffer) doFlush() bool { + if rb.f.composing { + rb.compose() + } + res := rb.flushF(rb) + rb.reset() + return res +} + +// appendFlush appends the normalized segment to rb.out. +func appendFlush(rb *reorderBuffer) bool { + for i := 0; i < rb.nrune; i++ { + start := rb.rune[i].pos + end := start + rb.rune[i].size + rb.out = append(rb.out, rb.byte[start:end]...) + } + return true +} + +// flush appends the normalized segment to out and resets rb. +func (rb *reorderBuffer) flush(out []byte) []byte { + for i := 0; i < rb.nrune; i++ { + start := rb.rune[i].pos + end := start + rb.rune[i].size + out = append(out, rb.byte[start:end]...) + } + rb.reset() + return out +} + +// flushCopy copies the normalized segment to buf and resets rb. +// It returns the number of bytes written to buf. +func (rb *reorderBuffer) flushCopy(buf []byte) int { + p := 0 + for i := 0; i < rb.nrune; i++ { + runep := rb.rune[i] + p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size]) + } + rb.reset() + return p +} + +// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class. +// It returns false if the buffer is not large enough to hold the rune. +// It is used internally by insert and insertString only. +func (rb *reorderBuffer) insertOrdered(info Properties) { + n := rb.nrune + b := rb.rune[:] + cc := info.ccc + if cc > 0 { + // Find insertion position + move elements to make room. + for ; n > 0; n-- { + if b[n-1].ccc <= cc { + break + } + b[n] = b[n-1] + } + } + rb.nrune += 1 + pos := uint8(rb.nbyte) + rb.nbyte += utf8.UTFMax + info.pos = pos + b[n] = info +} + +// insertErr is an error code returned by insert. Using this type instead +// of error improves performance up to 20% for many of the benchmarks. +type insertErr int + +const ( + iSuccess insertErr = -iota + iShortDst + iShortSrc +) + +// insertFlush inserts the given rune in the buffer ordered by CCC. +// If a decomposition with multiple segments are encountered, they leading +// ones are flushed. +// It returns a non-zero error code if the rune was not inserted. +func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr { + if rune := src.hangul(i); rune != 0 { + rb.decomposeHangul(rune) + return iSuccess + } + if info.hasDecomposition() { + return rb.insertDecomposed(info.Decomposition()) + } + rb.insertSingle(src, i, info) + return iSuccess +} + +// insertUnsafe inserts the given rune in the buffer ordered by CCC. +// It is assumed there is sufficient space to hold the runes. It is the +// responsibility of the caller to ensure this. This can be done by checking +// the state returned by the streamSafe type. +func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) { + if rune := src.hangul(i); rune != 0 { + rb.decomposeHangul(rune) + } + if info.hasDecomposition() { + // TODO: inline. + rb.insertDecomposed(info.Decomposition()) + } else { + rb.insertSingle(src, i, info) + } +} + +// insertDecomposed inserts an entry in to the reorderBuffer for each rune +// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes. +// It flushes the buffer on each new segment start. +func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr { + rb.tmpBytes.setBytes(dcomp) + // As the streamSafe accounting already handles the counting for modifiers, + // we don't have to call next. However, we do need to keep the accounting + // intact when flushing the buffer. + for i := 0; i < len(dcomp); { + info := rb.f.info(rb.tmpBytes, i) + if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() { + return iShortDst + } + i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)]) + rb.insertOrdered(info) + } + return iSuccess +} + +// insertSingle inserts an entry in the reorderBuffer for the rune at +// position i. info is the runeInfo for the rune at position i. +func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) { + src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size)) + rb.insertOrdered(info) +} + +// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb. +func (rb *reorderBuffer) insertCGJ() { + rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))}) +} + +// appendRune inserts a rune at the end of the buffer. It is used for Hangul. +func (rb *reorderBuffer) appendRune(r rune) { + bn := rb.nbyte + sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) + rb.nbyte += utf8.UTFMax + rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)} + rb.nrune++ +} + +// assignRune sets a rune at position pos. It is used for Hangul and recomposition. +func (rb *reorderBuffer) assignRune(pos int, r rune) { + bn := rb.rune[pos].pos + sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) + rb.rune[pos] = Properties{pos: bn, size: uint8(sz)} +} + +// runeAt returns the rune at position n. It is used for Hangul and recomposition. +func (rb *reorderBuffer) runeAt(n int) rune { + inf := rb.rune[n] + r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size]) + return r +} + +// bytesAt returns the UTF-8 encoding of the rune at position n. +// It is used for Hangul and recomposition. +func (rb *reorderBuffer) bytesAt(n int) []byte { + inf := rb.rune[n] + return rb.byte[inf.pos : int(inf.pos)+int(inf.size)] +} + +// For Hangul we combine algorithmically, instead of using tables. +const ( + hangulBase = 0xAC00 // UTF-8(hangulBase) -> EA B0 80 + hangulBase0 = 0xEA + hangulBase1 = 0xB0 + hangulBase2 = 0x80 + + hangulEnd = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4 + hangulEnd0 = 0xED + hangulEnd1 = 0x9E + hangulEnd2 = 0xA4 + + jamoLBase = 0x1100 // UTF-8(jamoLBase) -> E1 84 00 + jamoLBase0 = 0xE1 + jamoLBase1 = 0x84 + jamoLEnd = 0x1113 + jamoVBase = 0x1161 + jamoVEnd = 0x1176 + jamoTBase = 0x11A7 + jamoTEnd = 0x11C3 + + jamoTCount = 28 + jamoVCount = 21 + jamoVTCount = 21 * 28 + jamoLVTCount = 19 * 21 * 28 +) + +const hangulUTF8Size = 3 + +func isHangul(b []byte) bool { + if len(b) < hangulUTF8Size { + return false + } + b0 := b[0] + if b0 < hangulBase0 { + return false + } + b1 := b[1] + switch { + case b0 == hangulBase0: + return b1 >= hangulBase1 + case b0 < hangulEnd0: + return true + case b0 > hangulEnd0: + return false + case b1 < hangulEnd1: + return true + } + return b1 == hangulEnd1 && b[2] < hangulEnd2 +} + +func isHangulString(b string) bool { + if len(b) < hangulUTF8Size { + return false + } + b0 := b[0] + if b0 < hangulBase0 { + return false + } + b1 := b[1] + switch { + case b0 == hangulBase0: + return b1 >= hangulBase1 + case b0 < hangulEnd0: + return true + case b0 > hangulEnd0: + return false + case b1 < hangulEnd1: + return true + } + return b1 == hangulEnd1 && b[2] < hangulEnd2 +} + +// Caller must ensure len(b) >= 2. +func isJamoVT(b []byte) bool { + // True if (rune & 0xff00) == jamoLBase + return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1 +} + +func isHangulWithoutJamoT(b []byte) bool { + c, _ := utf8.DecodeRune(b) + c -= hangulBase + return c < jamoLVTCount && c%jamoTCount == 0 +} + +// decomposeHangul writes the decomposed Hangul to buf and returns the number +// of bytes written. len(buf) should be at least 9. +func decomposeHangul(buf []byte, r rune) int { + const JamoUTF8Len = 3 + r -= hangulBase + x := r % jamoTCount + r /= jamoTCount + utf8.EncodeRune(buf, jamoLBase+r/jamoVCount) + utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount) + if x != 0 { + utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x) + return 3 * JamoUTF8Len + } + return 2 * JamoUTF8Len +} + +// decomposeHangul algorithmically decomposes a Hangul rune into +// its Jamo components. +// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. +func (rb *reorderBuffer) decomposeHangul(r rune) { + r -= hangulBase + x := r % jamoTCount + r /= jamoTCount + rb.appendRune(jamoLBase + r/jamoVCount) + rb.appendRune(jamoVBase + r%jamoVCount) + if x != 0 { + rb.appendRune(jamoTBase + x) + } +} + +// combineHangul algorithmically combines Jamo character components into Hangul. +// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul. +func (rb *reorderBuffer) combineHangul(s, i, k int) { + b := rb.rune[:] + bn := rb.nrune + for ; i < bn; i++ { + cccB := b[k-1].ccc + cccC := b[i].ccc + if cccB == 0 { + s = k - 1 + } + if s != k-1 && cccB >= cccC { + // b[i] is blocked by greater-equal cccX below it + b[k] = b[i] + k++ + } else { + l := rb.runeAt(s) // also used to compare to hangulBase + v := rb.runeAt(i) // also used to compare to jamoT + switch { + case jamoLBase <= l && l < jamoLEnd && + jamoVBase <= v && v < jamoVEnd: + // 11xx plus 116x to LV + rb.assignRune(s, hangulBase+ + (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount) + case hangulBase <= l && l < hangulEnd && + jamoTBase < v && v < jamoTEnd && + ((l-hangulBase)%jamoTCount) == 0: + // ACxx plus 11Ax to LVT + rb.assignRune(s, l+v-jamoTBase) + default: + b[k] = b[i] + k++ + } + } + } + rb.nrune = k +} + +// compose recombines the runes in the buffer. +// It should only be used to recompose a single segment, as it will not +// handle alternations between Hangul and non-Hangul characters correctly. +func (rb *reorderBuffer) compose() { + // Lazily load the map used by the combine func below, but do + // it outside of the loop. + recompMapOnce.Do(buildRecompMap) + + // UAX #15, section X5 , including Corrigendum #5 + // "In any character sequence beginning with starter S, a character C is + // blocked from S if and only if there is some character B between S + // and C, and either B is a starter or it has the same or higher + // combining class as C." + bn := rb.nrune + if bn == 0 { + return + } + k := 1 + b := rb.rune[:] + for s, i := 0, 1; i < bn; i++ { + if isJamoVT(rb.bytesAt(i)) { + // Redo from start in Hangul mode. Necessary to support + // U+320E..U+321E in NFKC mode. + rb.combineHangul(s, i, k) + return + } + ii := b[i] + // We can only use combineForward as a filter if we later + // get the info for the combined character. This is more + // expensive than using the filter. Using combinesBackward() + // is safe. + if ii.combinesBackward() { + cccB := b[k-1].ccc + cccC := ii.ccc + blocked := false // b[i] blocked by starter or greater or equal CCC? + if cccB == 0 { + s = k - 1 + } else { + blocked = s != k-1 && cccB >= cccC + } + if !blocked { + combined := combine(rb.runeAt(s), rb.runeAt(i)) + if combined != 0 { + rb.assignRune(s, combined) + continue + } + } + } + b[k] = b[i] + k++ + } + rb.nrune = k +} diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go new file mode 100644 index 0000000..526c703 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -0,0 +1,278 @@ +// Copyright 2011 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 norm + +import "encoding/binary" + +// This file contains Form-specific logic and wrappers for data in tables.go. + +// Rune info is stored in a separate trie per composing form. A composing form +// and its corresponding decomposing form share the same trie. Each trie maps +// a rune to a uint16. The values take two forms. For v >= 0x8000: +// bits +// 15: 1 (inverse of NFD_QC bit of qcInfo) +// 13..7: qcInfo (see below). isYesD is always true (no decompostion). +// 6..0: ccc (compressed CCC value). +// For v < 0x8000, the respective rune has a decomposition and v is an index +// into a byte array of UTF-8 decomposition sequences and additional info and +// has the form: +//

* [ []] +// The header contains the number of bytes in the decomposition (excluding this +// length byte). The two most significant bits of this length byte correspond +// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. +// The byte sequence is followed by a trailing and leading CCC if the values +// for these are not zero. The value of v determines which ccc are appended +// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, +// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC +// there is an additional leading ccc. The value of tccc itself is the +// trailing CCC shifted left 2 bits. The two least-significant bits of tccc +// are the number of trailing non-starters. + +const ( + qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo + headerLenMask = 0x3F // extract the length value from the header byte + headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte +) + +// Properties provides access to normalization properties of a rune. +type Properties struct { + pos uint8 // start position in reorderBuffer; used in composition.go + size uint8 // length of UTF-8 encoding of this rune + ccc uint8 // leading canonical combining class (ccc if not decomposition) + tccc uint8 // trailing canonical combining class (ccc if not decomposition) + nLead uint8 // number of leading non-starters. + flags qcInfo // quick check flags + index uint16 +} + +// functions dispatchable per form +type lookupFunc func(b input, i int) Properties + +// formInfo holds Form-specific functions and tables. +type formInfo struct { + form Form + composing, compatibility bool // form type + info lookupFunc + nextMain iterFunc +} + +var formTable = []*formInfo{{ + form: NFC, + composing: true, + compatibility: false, + info: lookupInfoNFC, + nextMain: nextComposed, +}, { + form: NFD, + composing: false, + compatibility: false, + info: lookupInfoNFC, + nextMain: nextDecomposed, +}, { + form: NFKC, + composing: true, + compatibility: true, + info: lookupInfoNFKC, + nextMain: nextComposed, +}, { + form: NFKD, + composing: false, + compatibility: true, + info: lookupInfoNFKC, + nextMain: nextDecomposed, +}} + +// We do not distinguish between boundaries for NFC, NFD, etc. to avoid +// unexpected behavior for the user. For example, in NFD, there is a boundary +// after 'a'. However, 'a' might combine with modifiers, so from the application's +// perspective it is not a good boundary. We will therefore always use the +// boundaries for the combining variants. + +// BoundaryBefore returns true if this rune starts a new segment and +// cannot combine with any rune on the left. +func (p Properties) BoundaryBefore() bool { + if p.ccc == 0 && !p.combinesBackward() { + return true + } + // We assume that the CCC of the first character in a decomposition + // is always non-zero if different from info.ccc and that we can return + // false at this point. This is verified by maketables. + return false +} + +// BoundaryAfter returns true if runes cannot combine with or otherwise +// interact with this or previous runes. +func (p Properties) BoundaryAfter() bool { + // TODO: loosen these conditions. + return p.isInert() +} + +// We pack quick check data in 4 bits: +// 5: Combines forward (0 == false, 1 == true) +// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) +// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. +// 1..0: Number of trailing non-starters. +// +// When all 4 bits are zero, the character is inert, meaning it is never +// influenced by normalization. +type qcInfo uint8 + +func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } +func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } + +func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } +func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe +func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD + +func (p Properties) isInert() bool { + return p.flags&qcInfoMask == 0 && p.ccc == 0 +} + +func (p Properties) multiSegment() bool { + return p.index >= firstMulti && p.index < endMulti +} + +func (p Properties) nLeadingNonStarters() uint8 { + return p.nLead +} + +func (p Properties) nTrailingNonStarters() uint8 { + return uint8(p.flags & 0x03) +} + +// Decomposition returns the decomposition for the underlying rune +// or nil if there is none. +func (p Properties) Decomposition() []byte { + // TODO: create the decomposition for Hangul? + if p.index == 0 { + return nil + } + i := p.index + n := decomps[i] & headerLenMask + i++ + return decomps[i : i+uint16(n)] +} + +// Size returns the length of UTF-8 encoding of the rune. +func (p Properties) Size() int { + return int(p.size) +} + +// CCC returns the canonical combining class of the underlying rune. +func (p Properties) CCC() uint8 { + if p.index >= firstCCCZeroExcept { + return 0 + } + return ccc[p.ccc] +} + +// LeadCCC returns the CCC of the first rune in the decomposition. +// If there is no decomposition, LeadCCC equals CCC. +func (p Properties) LeadCCC() uint8 { + return ccc[p.ccc] +} + +// TrailCCC returns the CCC of the last rune in the decomposition. +// If there is no decomposition, TrailCCC equals CCC. +func (p Properties) TrailCCC() uint8 { + return ccc[p.tccc] +} + +func buildRecompMap() { + recompMap = make(map[uint32]rune, len(recompMapPacked)/8) + var buf [8]byte + for i := 0; i < len(recompMapPacked); i += 8 { + copy(buf[:], recompMapPacked[i:i+8]) + key := binary.BigEndian.Uint32(buf[:4]) + val := binary.BigEndian.Uint32(buf[4:]) + recompMap[key] = rune(val) + } +} + +// Recomposition +// We use 32-bit keys instead of 64-bit for the two codepoint keys. +// This clips off the bits of three entries, but we know this will not +// result in a collision. In the unlikely event that changes to +// UnicodeData.txt introduce collisions, the compiler will catch it. +// Note that the recomposition map for NFC and NFKC are identical. + +// combine returns the combined rune or 0 if it doesn't exist. +// +// The caller is responsible for calling +// recompMapOnce.Do(buildRecompMap) sometime before this is called. +func combine(a, b rune) rune { + key := uint32(uint16(a))<<16 + uint32(uint16(b)) + if recompMap == nil { + panic("caller error") // see func comment + } + return recompMap[key] +} + +func lookupInfoNFC(b input, i int) Properties { + v, sz := b.charinfoNFC(i) + return compInfo(v, sz) +} + +func lookupInfoNFKC(b input, i int) Properties { + v, sz := b.charinfoNFKC(i) + return compInfo(v, sz) +} + +// Properties returns properties for the first rune in s. +func (f Form) Properties(s []byte) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookup(s)) + } + return compInfo(nfkcData.lookup(s)) +} + +// PropertiesString returns properties for the first rune in s. +func (f Form) PropertiesString(s string) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookupString(s)) + } + return compInfo(nfkcData.lookupString(s)) +} + +// compInfo converts the information contained in v and sz +// to a Properties. See the comment at the top of the file +// for more information on the format. +func compInfo(v uint16, sz int) Properties { + if v == 0 { + return Properties{size: uint8(sz)} + } else if v >= 0x8000 { + p := Properties{ + size: uint8(sz), + ccc: uint8(v), + tccc: uint8(v), + flags: qcInfo(v >> 8), + } + if p.ccc > 0 || p.combinesBackward() { + p.nLead = uint8(p.flags & 0x3) + } + return p + } + // has decomposition + h := decomps[v] + f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 + p := Properties{size: uint8(sz), flags: f, index: v} + if v >= firstCCC { + v += uint16(h&headerLenMask) + 1 + c := decomps[v] + p.tccc = c >> 2 + p.flags |= qcInfo(c & 0x3) + if v >= firstLeadingCCC { + p.nLead = c & 0x3 + if v >= firstStarterWithNLead { + // We were tricked. Remove the decomposition. + p.flags &= 0x03 + p.index = 0 + return p + } + p.ccc = decomps[v+1] + } + } + return p +} diff --git a/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go new file mode 100644 index 0000000..479e35b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/input.go @@ -0,0 +1,109 @@ +// Copyright 2011 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 norm + +import "unicode/utf8" + +type input struct { + str string + bytes []byte +} + +func inputBytes(str []byte) input { + return input{bytes: str} +} + +func inputString(str string) input { + return input{str: str} +} + +func (in *input) setBytes(str []byte) { + in.str = "" + in.bytes = str +} + +func (in *input) setString(str string) { + in.str = str + in.bytes = nil +} + +func (in *input) _byte(p int) byte { + if in.bytes == nil { + return in.str[p] + } + return in.bytes[p] +} + +func (in *input) skipASCII(p, max int) int { + if in.bytes == nil { + for ; p < max && in.str[p] < utf8.RuneSelf; p++ { + } + } else { + for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { + } + } + return p +} + +func (in *input) skipContinuationBytes(p int) int { + if in.bytes == nil { + for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { + } + } else { + for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { + } + } + return p +} + +func (in *input) appendSlice(buf []byte, b, e int) []byte { + if in.bytes != nil { + return append(buf, in.bytes[b:e]...) + } + for i := b; i < e; i++ { + buf = append(buf, in.str[i]) + } + return buf +} + +func (in *input) copySlice(buf []byte, b, e int) int { + if in.bytes == nil { + return copy(buf, in.str[b:e]) + } + return copy(buf, in.bytes[b:e]) +} + +func (in *input) charinfoNFC(p int) (uint16, int) { + if in.bytes == nil { + return nfcData.lookupString(in.str[p:]) + } + return nfcData.lookup(in.bytes[p:]) +} + +func (in *input) charinfoNFKC(p int) (uint16, int) { + if in.bytes == nil { + return nfkcData.lookupString(in.str[p:]) + } + return nfkcData.lookup(in.bytes[p:]) +} + +func (in *input) hangul(p int) (r rune) { + var size int + if in.bytes == nil { + if !isHangulString(in.str[p:]) { + return 0 + } + r, size = utf8.DecodeRuneInString(in.str[p:]) + } else { + if !isHangul(in.bytes[p:]) { + return 0 + } + r, size = utf8.DecodeRune(in.bytes[p:]) + } + if size != hangulUTF8Size { + return 0 + } + return r +} diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go new file mode 100644 index 0000000..417c6b2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/iter.go @@ -0,0 +1,458 @@ +// Copyright 2011 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 norm + +import ( + "fmt" + "unicode/utf8" +) + +// MaxSegmentSize is the maximum size of a byte buffer needed to consider any +// sequence of starter and non-starter runes for the purpose of normalization. +const MaxSegmentSize = maxByteBufferSize + +// An Iter iterates over a string or byte slice, while normalizing it +// to a given Form. +type Iter struct { + rb reorderBuffer + buf [maxByteBufferSize]byte + info Properties // first character saved from previous iteration + next iterFunc // implementation of next depends on form + asciiF iterFunc + + p int // current position in input source + multiSeg []byte // remainder of multi-segment decomposition +} + +type iterFunc func(*Iter) []byte + +// Init initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) Init(f Form, src []byte) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.init(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIBytes + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) +} + +// InitString initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) InitString(f Form, src string) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.initString(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIString + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) +} + +// Seek sets the segment to be returned by the next call to Next to start +// at position p. It is the responsibility of the caller to set p to the +// start of a segment. +func (i *Iter) Seek(offset int64, whence int) (int64, error) { + var abs int64 + switch whence { + case 0: + abs = offset + case 1: + abs = int64(i.p) + offset + case 2: + abs = int64(i.rb.nsrc) + offset + default: + return 0, fmt.Errorf("norm: invalid whence") + } + if abs < 0 { + return 0, fmt.Errorf("norm: negative position") + } + if int(abs) >= i.rb.nsrc { + i.setDone() + return int64(i.p), nil + } + i.p = int(abs) + i.multiSeg = nil + i.next = i.rb.f.nextMain + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) + return abs, nil +} + +// returnSlice returns a slice of the underlying input type as a byte slice. +// If the underlying is of type []byte, it will simply return a slice. +// If the underlying is of type string, it will copy the slice to the buffer +// and return that. +func (i *Iter) returnSlice(a, b int) []byte { + if i.rb.src.bytes == nil { + return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] + } + return i.rb.src.bytes[a:b] +} + +// Pos returns the byte position at which the next call to Next will commence processing. +func (i *Iter) Pos() int { + return i.p +} + +func (i *Iter) setDone() { + i.next = nextDone + i.p = i.rb.nsrc +} + +// Done returns true if there is no more input to process. +func (i *Iter) Done() bool { + return i.p >= i.rb.nsrc +} + +// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. +// For any input a and b for which f(a) == f(b), subsequent calls +// to Next will return the same segments. +// Modifying runes are grouped together with the preceding starter, if such a starter exists. +// Although not guaranteed, n will typically be the smallest possible n. +func (i *Iter) Next() []byte { + return i.next(i) +} + +func nextASCIIBytes(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + p0 := i.p + i.setDone() + return i.rb.src.bytes[p0:p] + } + if i.rb.src.bytes[p] < utf8.RuneSelf { + p0 := i.p + i.p = p + return i.rb.src.bytes[p0:p] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextASCIIString(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + i.buf[0] = i.rb.src.str[i.p] + i.setDone() + return i.buf[:1] + } + if i.rb.src.str[p] < utf8.RuneSelf { + i.buf[0] = i.rb.src.str[i.p] + i.p = p + return i.buf[:1] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextHangul(i *Iter) []byte { + p := i.p + next := p + hangulUTF8Size + if next >= i.rb.nsrc { + i.setDone() + } else if i.rb.src.hangul(next) == 0 { + i.rb.ss.next(i.info) + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) + } + i.p = next + return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] +} + +func nextDone(i *Iter) []byte { + return nil +} + +// nextMulti is used for iterating over multi-segment decompositions +// for decomposing normal forms. +func nextMulti(i *Iter) []byte { + j := 0 + d := i.multiSeg + // skip first rune + for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { + } + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.multiSeg = d[j:] + return d[:j] + } + j += int(info.size) + } + // treat last segment as normal decomposition + i.next = i.rb.f.nextMain + return i.next(i) +} + +// nextMultiNorm is used for iterating over multi-segment decompositions +// for composing normal forms. +func nextMultiNorm(i *Iter) []byte { + j := 0 + d := i.multiSeg + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + i.rb.insertUnsafe(input{bytes: d}, j, info) + i.multiSeg = d[j+int(info.size):] + return seg + } + i.rb.insertUnsafe(input{bytes: d}, j, info) + j += int(info.size) + } + i.multiSeg = nil + i.next = nextComposed + return doNormComposed(i) +} + +// nextDecomposed is the implementation of Next for forms NFD and NFKD. +func nextDecomposed(i *Iter) (next []byte) { + outp := 0 + inCopyStart, outCopyStart := i.p, 0 + for { + if sz := int(i.info.size); sz <= 1 { + i.rb.ss = 0 + p := i.p + i.p++ // ASCII or illegal byte. Either way, advance by 1. + if i.p >= i.rb.nsrc { + i.setDone() + return i.returnSlice(p, i.p) + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.next = i.asciiF + return i.returnSlice(p, i.p) + } + outp++ + } else if d := i.info.Decomposition(); d != nil { + // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. + // Case 1: there is a leftover to copy. In this case the decomposition + // must begin with a modifier and should always be appended. + // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. + p := outp + len(d) + if outp > 0 { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + // TODO: this condition should not be possible, but we leave it + // in for defensive purposes. + if p > len(i.buf) { + return i.buf[:outp] + } + } else if i.info.multiSegment() { + // outp must be 0 as multi-segment decompositions always + // start a new segment. + if i.multiSeg == nil { + i.multiSeg = d + i.next = nextMulti + return nextMulti(i) + } + // We are in the last segment. Treat as normal decomposition. + d = i.multiSeg + i.multiSeg = nil + p = len(d) + } + prevCC := i.info.tccc + if i.p += sz; i.p >= i.rb.nsrc { + i.setDone() + i.info = Properties{} // Force BoundaryBefore to succeed. + } else { + i.info = i.rb.f.info(i.rb.src, i.p) + } + switch i.rb.ss.next(i.info) { + case ssOverflow: + i.next = nextCGJDecompose + fallthrough + case ssStarter: + if outp > 0 { + copy(i.buf[outp:], d) + return i.buf[:p] + } + return d + } + copy(i.buf[outp:], d) + outp = p + inCopyStart, outCopyStart = i.p, outp + if i.info.ccc < prevCC { + goto doNorm + } + continue + } else if r := i.rb.src.hangul(i.p); r != 0 { + outp = decomposeHangul(i.buf[:], r) + i.p += hangulUTF8Size + inCopyStart, outCopyStart = i.p, outp + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src.hangul(i.p) != 0 { + i.next = nextHangul + return i.buf[:outp] + } + } else { + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + } + if i.p >= i.rb.nsrc { + i.setDone() + break + } + prevCC := i.info.tccc + i.info = i.rb.f.info(i.rb.src, i.p) + if v := i.rb.ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJDecompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + if outCopyStart == 0 { + return i.returnSlice(inCopyStart, i.p) + } else if inCopyStart < i.p { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + } + return i.buf[:outp] +doNorm: + // Insert what we have decomposed so far in the reorderBuffer. + // As we will only reorder, there will always be enough room. + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + i.rb.insertDecomposed(i.buf[0:outp]) + return doNormDecomposed(i) +} + +func doNormDecomposed(i *Iter) []byte { + for { + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if i.info.ccc == 0 { + break + } + if s := i.rb.ss.next(i.info); s == ssOverflow { + i.next = nextCGJDecompose + break + } + } + // new segment or too many combining characters: exit normalization + return i.buf[:i.rb.flushCopy(i.buf[:])] +} + +func nextCGJDecompose(i *Iter) []byte { + i.rb.ss = 0 + i.rb.insertCGJ() + i.next = nextDecomposed + i.rb.ss.first(i.info) + buf := doNormDecomposed(i) + return buf +} + +// nextComposed is the implementation of Next for forms NFC and NFKC. +func nextComposed(i *Iter) []byte { + outp, startp := 0, i.p + var prevCC uint8 + for { + if !i.info.isYesC() { + goto doNorm + } + prevCC = i.info.tccc + sz := int(i.info.size) + if sz == 0 { + sz = 1 // illegal rune: copy byte-by-byte + } + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.rb.ss = 0 + i.next = i.asciiF + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if v := i.rb.ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJCompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + return i.returnSlice(startp, i.p) +doNorm: + // reset to start position + i.p = startp + i.info = i.rb.f.info(i.rb.src, i.p) + i.rb.ss.first(i.info) + if i.info.multiSegment() { + d := i.info.Decomposition() + info := i.rb.f.info(input{bytes: d}, 0) + i.rb.insertUnsafe(input{bytes: d}, 0, info) + i.multiSeg = d[int(info.size):] + i.next = nextMultiNorm + return nextMultiNorm(i) + } + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} + +func doNormComposed(i *Iter) []byte { + // First rune should already be inserted. + for { + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if s := i.rb.ss.next(i.info); s == ssStarter { + break + } else if s == ssOverflow { + i.next = nextCGJCompose + break + } + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + } + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + return seg +} + +func nextCGJCompose(i *Iter) []byte { + i.rb.ss = 0 // instead of first + i.rb.insertCGJ() + i.next = nextComposed + // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, + // even if they are not. This is particularly dubious for U+FF9E and UFF9A. + // If we ever change that, insert a check here. + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go new file mode 100644 index 0000000..95efcf2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -0,0 +1,609 @@ +// Copyright 2011 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. + +// Note: the file data_test.go that is generated should not be checked in. +//go:generate go run maketables.go triegen.go +//go:generate go test -tags test + +// Package norm contains types and functions for normalizing Unicode strings. +package norm // import "golang.org/x/text/unicode/norm" + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// A Form denotes a canonical representation of Unicode code points. +// The Unicode-defined normalization and equivalence forms are: +// +// NFC Unicode Normalization Form C +// NFD Unicode Normalization Form D +// NFKC Unicode Normalization Form KC +// NFKD Unicode Normalization Form KD +// +// For a Form f, this documentation uses the notation f(x) to mean +// the bytes or string x converted to the given form. +// A position n in x is called a boundary if conversion to the form can +// proceed independently on both sides: +// f(x) == append(f(x[0:n]), f(x[n:])...) +// +// References: https://unicode.org/reports/tr15/ and +// https://unicode.org/notes/tn5/. +type Form int + +const ( + NFC Form = iota + NFD + NFKC + NFKD +) + +// Bytes returns f(b). May return b if f(b) = b. +func (f Form) Bytes(b []byte) []byte { + src := inputBytes(b) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return b + } + out := make([]byte, n, len(b)) + copy(out, b[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} + return doAppendInner(&rb, n) +} + +// String returns f(s). +func (f Form) String(s string) string { + src := inputString(s) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return s + } + out := make([]byte, n, len(s)) + copy(out, s[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} + return string(doAppendInner(&rb, n)) +} + +// IsNormal returns true if b == f(b). +func (f Form) IsNormal(b []byte) bool { + src := inputBytes(b) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} + rb.setFlusher(nil, cmpNormalBytes) + for bp < len(b) { + rb.out = b[bp:] + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) + } + return true +} + +func cmpNormalBytes(rb *reorderBuffer) bool { + b := rb.out + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if int(info.size) > len(b) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if b[0] != rb.byte[p] { + return false + } + b = b[1:] + } + } + return true +} + +// IsNormalString returns true if s == f(s). +func (f Form) IsNormalString(s string) bool { + src := inputString(s) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} + rb.setFlusher(nil, func(rb *reorderBuffer) bool { + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if bp+int(info.size) > len(s) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if s[bp] != rb.byte[p] { + return false + } + bp++ + } + } + return true + }) + for bp < len(s) { + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) + } + return true +} + +// patchTail fixes a case where a rune may be incorrectly normalized +// if it is followed by illegal continuation bytes. It returns the +// patched buffer and whether the decomposition is still in progress. +func patchTail(rb *reorderBuffer) bool { + info, p := lastRuneStart(&rb.f, rb.out) + if p == -1 || info.size == 0 { + return true + } + end := p + int(info.size) + extra := len(rb.out) - end + if extra > 0 { + // Potentially allocating memory. However, this only + // happens with ill-formed UTF-8. + x := make([]byte, 0) + x = append(x, rb.out[len(rb.out)-extra:]...) + rb.out = rb.out[:end] + decomposeToLastBoundary(rb) + rb.doFlush() + rb.out = append(rb.out, x...) + return false + } + buf := rb.out[p:] + rb.out = rb.out[:p] + decomposeToLastBoundary(rb) + if s := rb.ss.next(info); s == ssStarter { + rb.doFlush() + rb.ss.first(info) + } else if s == ssOverflow { + rb.doFlush() + rb.insertCGJ() + rb.ss = 0 + } + rb.insertUnsafe(inputBytes(buf), 0, info) + return true +} + +func appendQuick(rb *reorderBuffer, i int) int { + if rb.nsrc == i { + return i + } + end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) + rb.out = rb.src.appendSlice(rb.out, i, end) + return end +} + +// Append returns f(append(out, b...)). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) Append(out []byte, src ...byte) []byte { + return f.doAppend(out, inputBytes(src), len(src)) +} + +func (f Form) doAppend(out []byte, src input, n int) []byte { + if n == 0 { + return out + } + ft := formTable[f] + // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. + if len(out) == 0 { + p, _ := ft.quickSpan(src, 0, n, true) + out = src.appendSlice(out, 0, p) + if p == n { + return out + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} + return doAppendInner(&rb, p) + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n} + return doAppend(&rb, out, 0) +} + +func doAppend(rb *reorderBuffer, out []byte, p int) []byte { + rb.setFlusher(out, appendFlush) + src, n := rb.src, rb.nsrc + doMerge := len(out) > 0 + if q := src.skipContinuationBytes(p); q > p { + // Move leading non-starters to destination. + rb.out = src.appendSlice(rb.out, p, q) + p = q + doMerge = patchTail(rb) + } + fd := &rb.f + if doMerge { + var info Properties + if p < n { + info = fd.info(src, p) + if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { + if p == 0 { + decomposeToLastBoundary(rb) + } + p = decomposeSegment(rb, p, true) + } + } + if info.size == 0 { + rb.doFlush() + // Append incomplete UTF-8 encoding. + return src.appendSlice(rb.out, p, n) + } + if rb.nrune > 0 { + return doAppendInner(rb, p) + } + } + p = appendQuick(rb, p) + return doAppendInner(rb, p) +} + +func doAppendInner(rb *reorderBuffer, p int) []byte { + for n := rb.nsrc; p < n; { + p = decomposeSegment(rb, p, true) + p = appendQuick(rb, p) + } + return rb.out +} + +// AppendString returns f(append(out, []byte(s))). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) AppendString(out []byte, src string) []byte { + return f.doAppend(out, inputString(src), len(src)) +} + +// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpan(b []byte) int { + n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) + return n +} + +// Span implements transform.SpanningTransformer. It returns a boundary n such +// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n. +func (f Form) Span(b []byte, atEOF bool) (n int, err error) { + n, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF) + if n < len(b) { + if !ok { + err = transform.ErrEndOfSpan + } else { + err = transform.ErrShortSrc + } + } + return n, err +} + +// SpanString returns a boundary n such that s[0:n] == f(s[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) SpanString(s string, atEOF bool) (n int, err error) { + n, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF) + if n < len(s) { + if !ok { + err = transform.ErrEndOfSpan + } else { + err = transform.ErrShortSrc + } + } + return n, err +} + +// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and +// whether any non-normalized parts were found. If atEOF is false, n will +// not point past the last segment if this segment might be become +// non-normalized by appending other runes. +func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { + var lastCC uint8 + ss := streamSafe(0) + lastSegStart := i + for n = end; i < n; { + if j := src.skipASCII(i, n); i != j { + i = j + lastSegStart = i - 1 + lastCC = 0 + ss = 0 + continue + } + info := f.info(src, i) + if info.size == 0 { + if atEOF { + // include incomplete runes + return n, true + } + return lastSegStart, true + } + // This block needs to be before the next, because it is possible to + // have an overflow for runes that are starters (e.g. with U+FF9E). + switch ss.next(info) { + case ssStarter: + lastSegStart = i + case ssOverflow: + return lastSegStart, false + case ssSuccess: + if lastCC > info.ccc { + return lastSegStart, false + } + } + if f.composing { + if !info.isYesC() { + break + } + } else { + if !info.isYesD() { + break + } + } + lastCC = info.ccc + i += int(info.size) + } + if i == n { + if !atEOF { + n = lastSegStart + } + return n, true + } + return lastSegStart, false +} + +// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpanString(s string) int { + n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true) + return n +} + +// FirstBoundary returns the position i of the first boundary in b +// or -1 if b contains no boundary. +func (f Form) FirstBoundary(b []byte) int { + return f.firstBoundary(inputBytes(b), len(b)) +} + +func (f Form) firstBoundary(src input, nsrc int) int { + i := src.skipContinuationBytes(0) + if i >= nsrc { + return -1 + } + fd := formTable[f] + ss := streamSafe(0) + // We should call ss.first here, but we can't as the first rune is + // skipped already. This means FirstBoundary can't really determine + // CGJ insertion points correctly. Luckily it doesn't have to. + for { + info := fd.info(src, i) + if info.size == 0 { + return -1 + } + if s := ss.next(info); s != ssSuccess { + return i + } + i += int(info.size) + if i >= nsrc { + if !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc + } + } +} + +// FirstBoundaryInString returns the position i of the first boundary in s +// or -1 if s contains no boundary. +func (f Form) FirstBoundaryInString(s string) int { + return f.firstBoundary(inputString(s), len(s)) +} + +// NextBoundary reports the index of the boundary between the first and next +// segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundary(b []byte, atEOF bool) int { + return f.nextBoundary(inputBytes(b), len(b), atEOF) +} + +// NextBoundaryInString reports the index of the boundary between the first and +// next segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundaryInString(s string, atEOF bool) int { + return f.nextBoundary(inputString(s), len(s), atEOF) +} + +func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int { + if nsrc == 0 { + if atEOF { + return 0 + } + return -1 + } + fd := formTable[f] + info := fd.info(src, 0) + if info.size == 0 { + if atEOF { + return 1 + } + return -1 + } + ss := streamSafe(0) + ss.first(info) + + for i := int(info.size); i < nsrc; i += int(info.size) { + info = fd.info(src, i) + if info.size == 0 { + if atEOF { + return i + } + return -1 + } + // TODO: Using streamSafe to determine the boundary isn't the same as + // using BoundaryBefore. Determine which should be used. + if s := ss.next(info); s != ssSuccess { + return i + } + } + if !atEOF && !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc +} + +// LastBoundary returns the position i of the last boundary in b +// or -1 if b contains no boundary. +func (f Form) LastBoundary(b []byte) int { + return lastBoundary(formTable[f], b) +} + +func lastBoundary(fd *formInfo, b []byte) int { + i := len(b) + info, p := lastRuneStart(fd, b) + if p == -1 { + return -1 + } + if info.size == 0 { // ends with incomplete rune + if p == 0 { // starts with incomplete rune + return -1 + } + i = p + info, p = lastRuneStart(fd, b[:i]) + if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter + return i + } + } + if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 + return i + } + if info.BoundaryAfter() { + return i + } + ss := streamSafe(0) + v := ss.backwards(info) + for i = p; i >= 0 && v != ssStarter; i = p { + info, p = lastRuneStart(fd, b[:i]) + if v = ss.backwards(info); v == ssOverflow { + break + } + if p+int(info.size) != i { + if p == -1 { // no boundary found + return -1 + } + return i // boundary after an illegal UTF-8 encoding + } + } + return i +} + +// decomposeSegment scans the first segment in src into rb. It inserts 0x034f +// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters +// and returns the number of bytes consumed from src or iShortDst or iShortSrc. +func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { + // Force one character to be consumed. + info := rb.f.info(rb.src, sp) + if info.size == 0 { + return 0 + } + if s := rb.ss.next(info); s == ssStarter { + // TODO: this could be removed if we don't support merging. + if rb.nrune > 0 { + goto end + } + } else if s == ssOverflow { + rb.insertCGJ() + goto end + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + for { + sp += int(info.size) + if sp >= rb.nsrc { + if !atEOF && !info.BoundaryAfter() { + return int(iShortSrc) + } + break + } + info = rb.f.info(rb.src, sp) + if info.size == 0 { + if !atEOF { + return int(iShortSrc) + } + break + } + if s := rb.ss.next(info); s == ssStarter { + break + } else if s == ssOverflow { + rb.insertCGJ() + break + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + } +end: + if !rb.doFlush() { + return int(iShortDst) + } + return sp +} + +// lastRuneStart returns the runeInfo and position of the last +// rune in buf or the zero runeInfo and -1 if no rune was found. +func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { + p := len(buf) - 1 + for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { + } + if p < 0 { + return Properties{}, -1 + } + return fd.info(inputBytes(buf), p), p +} + +// decomposeToLastBoundary finds an open segment at the end of the buffer +// and scans it into rb. Returns the buffer minus the last segment. +func decomposeToLastBoundary(rb *reorderBuffer) { + fd := &rb.f + info, i := lastRuneStart(fd, rb.out) + if int(info.size) != len(rb.out)-i { + // illegal trailing continuation bytes + return + } + if info.BoundaryAfter() { + return + } + var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order + padd := 0 + ss := streamSafe(0) + p := len(rb.out) + for { + add[padd] = info + v := ss.backwards(info) + if v == ssOverflow { + // Note that if we have an overflow, it the string we are appending to + // is not correctly normalized. In this case the behavior is undefined. + break + } + padd++ + p -= int(info.size) + if v == ssStarter || p < 0 { + break + } + info, i = lastRuneStart(fd, rb.out[:p]) + if int(info.size) != p-i { + break + } + } + rb.ss = ss + // Copy bytes for insertion as we may need to overwrite rb.out. + var buf [maxBufferSize * utf8.UTFMax]byte + cp := buf[:copy(buf[:], rb.out[p:])] + rb.out = rb.out[:p] + for padd--; padd >= 0; padd-- { + info = add[padd] + rb.insertUnsafe(inputBytes(cp), 0, info) + cp = cp[info.size:] + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go new file mode 100644 index 0000000..b38096f --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/readwriter.go @@ -0,0 +1,125 @@ +// Copyright 2011 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 norm + +import "io" + +type normWriter struct { + rb reorderBuffer + w io.Writer + buf []byte +} + +// Write implements the standard write interface. If the last characters are +// not at a normalization boundary, the bytes will be buffered for the next +// write. The remaining bytes will be written on close. +func (w *normWriter) Write(data []byte) (n int, err error) { + // Process data in pieces to keep w.buf size bounded. + const chunk = 4000 + + for len(data) > 0 { + // Normalize into w.buf. + m := len(data) + if m > chunk { + m = chunk + } + w.rb.src = inputBytes(data[:m]) + w.rb.nsrc = m + w.buf = doAppend(&w.rb, w.buf, 0) + data = data[m:] + n += m + + // Write out complete prefix, save remainder. + // Note that lastBoundary looks back at most 31 runes. + i := lastBoundary(&w.rb.f, w.buf) + if i == -1 { + i = 0 + } + if i > 0 { + if _, err = w.w.Write(w.buf[:i]); err != nil { + break + } + bn := copy(w.buf, w.buf[i:]) + w.buf = w.buf[:bn] + } + } + return n, err +} + +// Close forces data that remains in the buffer to be written. +func (w *normWriter) Close() error { + if len(w.buf) > 0 { + _, err := w.w.Write(w.buf) + if err != nil { + return err + } + } + return nil +} + +// Writer returns a new writer that implements Write(b) +// by writing f(b) to w. The returned writer may use an +// internal buffer to maintain state across Write calls. +// Calling its Close method writes any buffered data to w. +func (f Form) Writer(w io.Writer) io.WriteCloser { + wr := &normWriter{rb: reorderBuffer{}, w: w} + wr.rb.init(f, nil) + return wr +} + +type normReader struct { + rb reorderBuffer + r io.Reader + inbuf []byte + outbuf []byte + bufStart int + lastBoundary int + err error +} + +// Read implements the standard read interface. +func (r *normReader) Read(p []byte) (int, error) { + for { + if r.lastBoundary-r.bufStart > 0 { + n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) + r.bufStart += n + if r.lastBoundary-r.bufStart > 0 { + return n, nil + } + return n, r.err + } + if r.err != nil { + return 0, r.err + } + outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) + r.outbuf = r.outbuf[0:outn] + r.bufStart = 0 + + n, err := r.r.Read(r.inbuf) + r.rb.src = inputBytes(r.inbuf[0:n]) + r.rb.nsrc, r.err = n, err + if n > 0 { + r.outbuf = doAppend(&r.rb, r.outbuf, 0) + } + if err == io.EOF { + r.lastBoundary = len(r.outbuf) + } else { + r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) + if r.lastBoundary == -1 { + r.lastBoundary = 0 + } + } + } +} + +// Reader returns a new reader that implements Read +// by reading data from r and returning f(data). +func (f Form) Reader(r io.Reader) io.Reader { + const chunk = 4000 + buf := make([]byte, chunk) + rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} + rr.rb.init(f, buf) + return rr +} diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go new file mode 100644 index 0000000..26fbd55 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -0,0 +1,7657 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.10,!go1.13 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "10.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 45: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 45 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 47 blocks, 3008 entries, 6016 bytes +// The third block is the zero block. +var nfcValues = [3008]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xa000, + 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, + 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, + 0x3d2: 0x2d4e, + 0x3f4: 0x8102, 0x3f5: 0x9900, + 0x3fa: 0xa000, 0x3fb: 0x2d56, + 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, + // Block 0x10, offset 0x400 + 0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132, + 0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132, + 0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132, + 0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132, + 0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d, + // Block 0x11, offset 0x440 + 0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2, + 0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0, + 0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df, + 0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85, + 0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93, + 0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c, + 0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370, + 0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a, + 0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de, + 0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7, + 0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc, + // Block 0x12, offset 0x480 + 0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a, + 0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e, + 0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9, + 0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465, + 0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26, + 0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791, + 0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b, + 0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4, + 0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f, + 0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49, + 0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532, + 0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541, + 0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582, + 0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6, + 0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1, + 0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f, + 0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15, + 0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23, + 0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a, + 0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c, + 0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69, + // Block 0x14, offset 0x500 + 0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70, + 0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1, + 0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf, + 0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6, + 0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5, + 0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11, + 0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73, + 0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a, + 0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578, + 0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a, + // Block 0x15, offset 0x540 + 0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e, + 0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6, + 0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c, + 0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0, + 0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00, + 0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966, + 0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8, + 0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6, + 0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38, + 0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30, + 0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40, + // Block 0x16, offset 0x580 + 0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60, + 0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58, + 0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a, + 0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8, + 0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70, + 0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996, + 0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2, + 0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916, + 0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a, + 0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c, + 0x5bc: 0x4870, 0x5bd: 0x4342, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac, + 0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee, + 0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0, + 0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2, + 0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134, + 0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a, + 0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88, + 0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a, + 0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98, + 0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee, + 0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100, + // Block 0x18, offset 0x600 + 0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0, + 0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa, + 0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af, + 0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10, + 0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4, + 0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec, + 0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b, + 0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081, + 0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8, + 0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318, + 0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100, + // Block 0x19, offset 0x640 + 0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000, + 0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b, + 0x64d: 0xa000, + 0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29, + 0x664: 0xa000, 0x665: 0xa000, + 0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a, + 0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45, + 0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000, + 0x67c: 0xa000, 0x67d: 0xa000, + // Block 0x1a, offset 0x680 + 0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d, + 0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b, + 0x691: 0xa000, + 0x692: 0xa000, + 0x6a2: 0xa000, + 0x6a8: 0xa000, 0x6a9: 0xa000, + 0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5, + 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c6: 0xa000, 0x6cb: 0xa000, + 0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000, + 0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000, + 0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000, + 0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60, + 0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78, + 0x6ef: 0xa000, + 0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000, + 0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000, + 0x6fc: 0x3fc0, 0x6fd: 0x3fc8, + // Block 0x1c, offset 0x700 + 0x714: 0x3f00, + 0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000, + 0x71e: 0x3fd0, + 0x726: 0xa000, + 0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000, + 0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000, + 0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000, + 0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000, + // Block 0x1d, offset 0x740 + 0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040, + 0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050, + 0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060, + 0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080, + 0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0, + 0x76f: 0xa000, + 0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8, + 0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0, + 0x77d: 0xa000, 0x77e: 0x40c8, + // Block 0x1e, offset 0x780 + 0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb, + 0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943, + 0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3, + 0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43, + 0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87, + 0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283, + 0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f, + 0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853, + 0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b, + 0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b, + 0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b, + 0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f, + 0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7, + 0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127, + 0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357, + 0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873, + 0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3, + 0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b, + 0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57, + 0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb, + 0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b, + // Block 0x20, offset 0x800 + 0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f, + 0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3, + 0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83, + 0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193, + 0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b, + 0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b, + 0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f, + 0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b, + 0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753, + 0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777, + 0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73, + // Block 0x21, offset 0x840 + 0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3, + 0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47, + 0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af, + 0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df, + 0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817, + 0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3, + 0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457, + 0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b, + 0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27, + 0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f, + 0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b, + // Block 0x22, offset 0x880 + 0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03, + 0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27, + 0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af, + 0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3, + 0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb, + 0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353, + 0x8a5: 0x1407, 0x8a6: 0x1433, + 0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7, + 0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897, + 0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93, + 0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b, + 0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f, + 0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f, + 0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f, + 0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff, + 0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f, + 0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f, + 0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3, + 0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7, + 0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963, + 0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f, + // Block 0x24, offset 0x900 + 0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b, + 0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb, + 0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf, + 0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f, + 0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013, + 0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f, + 0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b, + 0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b, + 0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb, + 0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343, + 0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f, + // Block 0x25, offset 0x940 + 0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b, + 0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b, + 0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2, + 0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809, + 0x958: 0x1617, 0x959: 0x1627, + // Block 0x26, offset 0x980 + 0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757, + 0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773, + 0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3, + 0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf, + 0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff, + 0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f, + 0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867, + 0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af, + 0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93, + 0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3, + 0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f, + 0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983, + 0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf, + 0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3, + 0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef, + 0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23, + 0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37, + 0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63, + 0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f, + 0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692, + 0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7, + // Block 0x28, offset 0xa00 + 0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb, + 0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f, + 0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6, + 0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9, + 0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83, + 0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3, + 0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf, + 0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7, + 0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f, + 0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b, + 0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f, + // Block 0x29, offset 0xa40 + 0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87, + 0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb, + 0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7, + 0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663, + 0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd, + 0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7, + 0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b, + 0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f, + 0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7, + 0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700, + 0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23, + 0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53, + 0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714, + 0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b, + 0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719, + 0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728, + 0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37, + 0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57, + 0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737, + 0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741, + 0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff, + 0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637, + 0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f, + 0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093, + 0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782, + 0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3, + 0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7, + 0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133, + 0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa, + 0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4, + 0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197, + // Block 0x2c, offset 0xb00 + 0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7, + 0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7, + 0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b, + 0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd, + 0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f, + 0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f, + 0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273, + 0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677, + 0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7, + 0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb, + 0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f, + // Block 0x2d, offset 0xb40 + 0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5, + 0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa, + 0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b, + 0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7, + 0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665, + 0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f, + 0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477, + 0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693, + 0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb, + 0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b, + 0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567, + 0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7, + 0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7, + 0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef, + 0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31, + 0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34, + 0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0e, + 0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f, + 0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + // Block 0xe, offset 0x380 + 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, + 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7, + 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, + 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, + 0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1, + 0x3b0: 0x73, 0x3b5: 0xb2, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb3, 0x3ec: 0xb4, + // Block 0x10, offset 0x400 + 0x432: 0xb5, + // Block 0x11, offset 0x440 + 0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8, + 0x449: 0xb9, + // Block 0x12, offset 0x480 + 0x480: 0xba, + 0x4a3: 0xbb, 0x4a5: 0xbc, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xbd, + // Block 0x14, offset 0x500 + 0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b, + 0x528: 0x2c, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 145 entries, 290 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8} + +// nfcSparseValues: 682 entries, 2728 bytes +var nfcSparseValues = [682]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xd, offset 0x62 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x67 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x69 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x7a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x82 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x89 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x8c + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x14, offset 0x93 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x97 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x9d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x9f + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0xa8 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xac + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xb3 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xb8 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xbb + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xc8 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xcf + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xd7 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xda + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xdc + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x24, offset 0xde + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xe0 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xe5 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xf6 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0x104 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x10a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x10c + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x116 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x119 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x11c + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x11e + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x121 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x124 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x128 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x12d + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x136 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x138 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x13b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x13d + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x148 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x14c + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3e, offset 0x15a + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3f, offset 0x15d + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x40, offset 0x163 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x41, offset 0x169 + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x42, offset 0x174 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x43, offset 0x178 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x44, offset 0x17a + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x45, offset 0x17c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x46, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x47, offset 0x180 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x48, offset 0x182 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x49, offset 0x188 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x4a, offset 0x18c + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4b, offset 0x18e + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4c, offset 0x190 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4d, offset 0x198 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4e, offset 0x19c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4f, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x50, offset 0x1a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x51, offset 0x1a3 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x52, offset 0x1a5 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x53, offset 0x1a8 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x54, offset 0x1aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x55, offset 0x1ac + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x56, offset 0x1ae + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x57, offset 0x1b0 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x58, offset 0x1b6 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x59, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x5a, offset 0x1bb + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5b, offset 0x1c2 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5c, offset 0x1c8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5d, offset 0x1ce + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5e, offset 0x1d6 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5f, offset 0x1dc + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x60, offset 0x1e2 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x61, offset 0x1e8 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x62, offset 0x1ec + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x63, offset 0x1fa + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x64, offset 0x203 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x65, offset 0x206 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x66, offset 0x209 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x67, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x68, offset 0x20e + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x69, offset 0x210 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x6a, offset 0x214 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6b, offset 0x219 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6c, offset 0x21b + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6d, offset 0x21d + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6e, offset 0x222 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6f, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x70, offset 0x22a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x71, offset 0x22c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x72, offset 0x22e + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x234 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x74, offset 0x237 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x75, offset 0x23a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x76, offset 0x242 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x77, offset 0x249 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x78, offset 0x24c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x79, offset 0x24f + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7a, offset 0x251 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7b, offset 0x259 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x7c, offset 0x25c + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7d, offset 0x263 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7e, offset 0x266 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x26c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x80, offset 0x26e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x81, offset 0x271 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x82, offset 0x273 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x83, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x84, offset 0x277 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x85, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x86, offset 0x27c + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x87, offset 0x27e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x88, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x89, offset 0x282 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8a, offset 0x28f + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8b, offset 0x299 + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x8c, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8d, offset 0x29d + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x8e, offset 0x2a3 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x8f, offset 0x2a5 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x90, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 91: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 91 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 93 blocks, 5952 entries, 11904 bytes +// The third block is the zero block. +var nfkcValues = [5952]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, + 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, + 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, + 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, + 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, + 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, + 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, + 0x46a: 0x01fd, + 0x478: 0x020c, + // Block 0x12, offset 0x480 + 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, + 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, + 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, + 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, + 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, + 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, + 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132, + 0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132, + 0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132, + 0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132, + 0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132, + 0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132, + 0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132, + 0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132, + 0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132, + 0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132, + 0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d, + // Block 0x14, offset 0x500 + 0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2, + 0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0, + 0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df, + 0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85, + 0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93, + 0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c, + 0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370, + 0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a, + 0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de, + 0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7, + 0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc, + // Block 0x15, offset 0x540 + 0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a, + 0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e, + 0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9, + 0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465, + 0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26, + 0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791, + 0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b, + 0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4, + 0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f, + 0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49, + 0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519, + // Block 0x16, offset 0x580 + 0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532, + 0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541, + 0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582, + 0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6, + 0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7, + 0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f, + 0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15, + 0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23, + 0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a, + 0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c, + 0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70, + 0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1, + 0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf, + 0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6, + 0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5, + 0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11, + 0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73, + 0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a, + 0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578, + 0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a, + // Block 0x18, offset 0x600 + 0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e, + 0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6, + 0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c, + 0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0, + 0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00, + 0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966, + 0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8, + 0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6, + 0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38, + 0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30, + 0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40, + // Block 0x19, offset 0x640 + 0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60, + 0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58, + 0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a, + 0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8, + 0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70, + 0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996, + 0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2, + 0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916, + 0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a, + 0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c, + 0x67c: 0x4870, 0x67d: 0x4342, + // Block 0x1a, offset 0x680 + 0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac, + 0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee, + 0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0, + 0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2, + 0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134, + 0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a, + 0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88, + 0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a, + 0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98, + 0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee, + 0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0, + 0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa, + 0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af, + 0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10, + 0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e, + 0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec, + 0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b, + 0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081, + 0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8, + 0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318, + 0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c, + // Block 0x1c, offset 0x700 + 0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8, + 0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051, + 0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053, + 0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d, + 0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065, + 0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8, + 0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075, + 0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b, + 0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215, + 0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98, + 0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0, + // Block 0x1d, offset 0x740 + 0x740: 0x0463, 0x745: 0x0049, + 0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095, + 0x750: 0x222e, 0x751: 0x223a, + 0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8, + 0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0, + 0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963, + 0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071, + 0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b, + 0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62, + 0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50, + 0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b, + // Block 0x1e, offset 0x780 + 0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000, + 0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b, + 0x78d: 0xa000, + 0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29, + 0x7a4: 0xa000, 0x7a5: 0xa000, + 0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a, + 0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45, + 0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000, + 0x7bc: 0xa000, 0x7bd: 0xa000, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d, + 0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b, + 0x7d1: 0xa000, + 0x7d2: 0xa000, + 0x7e2: 0xa000, + 0x7e8: 0xa000, 0x7e9: 0xa000, + 0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5, + 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000, + // Block 0x20, offset 0x800 + 0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029, + 0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882, + 0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894, + 0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c, + 0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84, + 0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a, + // Block 0x21, offset 0x840 + 0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8, + 0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb, + 0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60, + 0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78, + 0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8, + 0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10, + 0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28, + 0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40, + 0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58, + 0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d, + 0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055, + // Block 0x22, offset 0x880 + 0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713, + 0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab, + 0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803, + 0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887, + 0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db, + 0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb, + 0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b, + 0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7, + 0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33, + 0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63, + 0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb, + 0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b, + 0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb, + 0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3, + 0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f, + 0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83, + 0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7, + 0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f, + 0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf, + 0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f, + 0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187, + // Block 0x24, offset 0x900 + 0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3, + 0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb, + 0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b, + 0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b, + 0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf, + 0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f, + 0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f, + 0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503, + 0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f, + 0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f, + 0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593, + // Block 0x25, offset 0x940 + 0x946: 0xa000, 0x94b: 0xa000, + 0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000, + 0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000, + 0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000, + 0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60, + 0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78, + 0x96f: 0xa000, + 0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000, + 0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000, + 0x97c: 0x3fc0, 0x97d: 0x3fc8, + // Block 0x26, offset 0x980 + 0x994: 0x3f00, + 0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000, + 0x99e: 0x3fd0, 0x99f: 0x26b4, + 0x9a6: 0xa000, + 0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000, + 0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000, + 0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000, + 0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040, + 0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050, + 0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060, + 0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080, + 0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0, + 0x9ef: 0xa000, + 0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8, + 0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0, + 0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9, + // Block 0x28, offset 0xa00 + 0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337, + 0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f, + 0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9, + 0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed, + 0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11, + 0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35, + 0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef, + 0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403, + 0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383, + 0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b, + 0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab, + // Block 0x29, offset 0xa40 + 0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb, + 0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7, + 0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3, + 0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7, + 0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff, + 0xa5e: 0x098f, 0xa5f: 0x072f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072, + 0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096, + 0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741, + 0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780, + 0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac, + 0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108, + 0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0, + 0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e, + 0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144, + 0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114, + 0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6, + // Block 0x2b, offset 0xac0 + 0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03, + 0xac6: 0x0ca7, 0xac7: 0x10c7, + 0xad0: 0x1bc4, 0xad1: 0x18a9, + 0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb, + 0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3, + 0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327, + 0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b, + 0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20, + 0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50, + 0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88, + 0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58, + // Block 0x2c, offset 0xb00 + 0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af, + 0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f, + 0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b, + 0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f, + 0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f, + 0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b, + 0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f, + 0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b, + 0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee, + 0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900, + 0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11, + 0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0, + 0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3, + 0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7, + 0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f, + 0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b, + 0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543, + 0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b, + 0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f, + 0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597, + 0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3, + // Block 0x2e, offset 0xb80 + 0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a, + 0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2, + 0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6, + 0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c, + 0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6, + 0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da, + 0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8, + 0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51, + 0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920, + 0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06, + 0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c, + 0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90, + 0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6, + 0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984, + 0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07, + 0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4, + 0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2, + 0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a, + 0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47, + 0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701, + 0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0, + // Block 0x30, offset 0xc00 + 0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969, + 0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35, + 0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c, + 0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9, + 0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0, + 0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40, + 0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996, + 0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad, + 0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38, + 0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b, + 0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984, + // Block 0x31, offset 0xc40 + 0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd, + 0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e, + 0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e, + 0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990, + 0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4, + 0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee, + 0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186, + 0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0, + 0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258, + 0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e, + 0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10, + // Block 0x32, offset 0xc80 + 0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb, + 0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943, + 0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3, + 0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43, + 0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87, + 0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283, + 0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f, + 0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853, + 0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b, + 0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b, + 0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b, + 0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f, + 0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7, + 0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127, + 0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357, + 0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873, + 0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3, + 0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b, + 0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57, + 0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb, + 0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b, + // Block 0x34, offset 0xd00 + 0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f, + 0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3, + 0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83, + 0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193, + 0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b, + 0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b, + 0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f, + 0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b, + 0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753, + 0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777, + 0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73, + // Block 0x35, offset 0xd40 + 0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3, + 0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47, + 0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af, + 0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df, + 0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817, + 0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3, + 0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457, + 0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b, + 0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27, + 0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f, + 0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b, + // Block 0x36, offset 0xd80 + 0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03, + 0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27, + 0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af, + 0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3, + 0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb, + 0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353, + 0xda5: 0x1407, 0xda6: 0x1433, + 0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7, + 0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897, + 0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93, + 0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b, + 0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f, + 0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f, + 0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f, + 0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff, + 0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f, + 0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f, + 0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3, + 0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7, + 0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963, + 0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f, + // Block 0x38, offset 0xe00 + 0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b, + 0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb, + 0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf, + 0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f, + 0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013, + 0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f, + 0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b, + 0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b, + 0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb, + 0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343, + 0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f, + // Block 0x39, offset 0xe40 + 0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b, + 0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b, + 0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2, + 0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809, + 0xe58: 0x1617, 0xe59: 0x1627, + // Block 0x3a, offset 0xe80 + 0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f, + 0xe86: 0x1a5f, + 0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70, + 0xe9d: 0x4390, + 0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221, + 0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017, + 0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e, + 0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e, + 0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2, + 0xebc: 0x43ae, 0xebe: 0x43b4, + // Block 0x3b, offset 0xec0 + 0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc, + 0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378, + 0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299, + 0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5, + 0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab, + 0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8, + 0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c, + 0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2, + 0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1, + 0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4, + 0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7, + // Block 0x3c, offset 0xf00 + 0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd, + 0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9, + 0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5, + 0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1, + 0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de, + 0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7, + 0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed, + 0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308, + 0xf30: 0x4468, 0xf31: 0x4468, + // Block 0x3d, offset 0xf40 + 0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6, + 0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f, + 0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc, + 0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d, + 0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9, + 0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c, + 0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0, + 0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302, + // Block 0x3e, offset 0xf80 + 0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89, + 0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb, + 0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded, + 0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29, + 0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b, + 0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9, + 0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00, + 0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32, + 0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50, + 0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e, + 0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf, + 0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd, + 0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff, + 0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022, + 0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c, + 0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6, + 0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7, + 0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6, + 0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8, + 0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10, + 0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96, + 0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1, + 0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027, + 0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1, + 0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e, + 0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5, + 0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29, + 0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60, + 0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9, + 0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05, + 0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64, + 0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91, + 0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe, + 0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff, + 0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031, + 0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4, + 0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92, + 0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0, + 0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1, + 0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74, + 0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33, + // Block 0x42, offset 0x1080 + 0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba, + 0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88, + 0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1, + 0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74, + 0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f, + 0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd, + 0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d, + 0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88, + 0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b, + 0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb, + 0x10bc: 0x4408, 0x10bd: 0x4408, + // Block 0x43, offset 0x10c0 + 0x10d0: 0x2311, 0x10d1: 0x2326, + 0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357, + 0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4, + 0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5, + 0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc, + 0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430, + 0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c, + 0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f, + 0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499, + // Block 0x44, offset 0x1100 + 0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df, + 0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e, + 0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c, + 0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548, + 0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c, + 0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365, + 0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406, + 0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e, + 0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca, + 0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7, + 0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f, + // Block 0x45, offset 0x1140 + 0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b, + 0x1146: 0x23c0, 0x1147: 0x2556, + 0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da, + 0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc, + 0x117c: 0x27d1, + // Block 0x46, offset 0x1180 + 0x1190: 0x0019, 0x1191: 0x0483, + 0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf, + 0x1198: 0x04c3, 0x1199: 0x1b5c, + 0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132, + 0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d, + 0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132, + 0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011, + 0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab, + 0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7, + 0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269, + 0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003, + 0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7, + 0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b, + 0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009, + 0x11ea: 0x000b, 0x11eb: 0x0041, + 0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4, + 0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e, + 0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a, + // Block 0x48, offset 0x1200 + 0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456, + 0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462, + 0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c, + 0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242, + 0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248, + 0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b, + 0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251, + 0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a, + 0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260, + 0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263, + 0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266, + // Block 0x49, offset 0x1240 + 0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c, + 0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f, + 0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275, + 0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278, + 0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e, + 0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281, + 0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287, + 0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d, + 0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00, + 0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82, + 0x127c: 0x1f82, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b, + 0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097, + 0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3, + 0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af, + 0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb, + 0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f, + 0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7, + 0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f, + 0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb, + 0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503, + 0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f, + 0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547, + 0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f, + 0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583, + 0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7, + 0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b, + 0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327, + 0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b, + 0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337, + 0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f, + 0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b, + // Block 0x4c, offset 0x1300 + 0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf, + 0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7, + 0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff, + 0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23, + 0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35, + 0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264, + 0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b, + 0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473, + // Block 0x4d, offset 0x1340 + 0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d, + 0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085, + 0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091, + 0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d, + 0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9, + 0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5, + 0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176, + 0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188, + 0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a, + 0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9, + 0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5, + // Block 0x4e, offset 0x1380 + 0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0, + 0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209, + 0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027, + 0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033, + 0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b, + 0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023, + 0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f, + 0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027, + 0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033, + 0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b, + 0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a, + 0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e, + 0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263, + 0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e, + 0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4, + 0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, + 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290, + 0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, + 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, + 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272, + // Block 0x50, offset 0x1400 + 0x1402: 0x0248, + 0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e, + 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e, + 0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4, + 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, + 0x143c: 0x0293, 0x143e: 0x02cc, + // Block 0x51, offset 0x1440 + 0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a, + 0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e, + 0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272, + 0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251, + 0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + // Block 0x52, offset 0x1480 + 0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8, + 0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927, + 0x1490: 0x1a8c, 0x1491: 0x1a90, + 0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8, + 0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0, + 0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8, + 0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0, + 0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1, + 0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d, + 0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059, + 0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503, + 0x14d0: 0x0c0f, 0x14d1: 0x0a47, + 0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff, + 0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b, + 0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b, + 0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf, + 0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b, + 0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43, + 0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443, + // Block 0x54, offset 0x1500 + 0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757, + 0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773, + 0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3, + 0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf, + 0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff, + 0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f, + 0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867, + 0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af, + 0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93, + 0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3, + 0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917, + // Block 0x55, offset 0x1540 + 0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f, + 0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983, + 0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf, + 0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3, + 0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef, + 0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23, + 0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37, + 0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63, + 0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f, + 0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692, + 0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7, + // Block 0x56, offset 0x1580 + 0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb, + 0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f, + 0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6, + 0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9, + 0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83, + 0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3, + 0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf, + 0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7, + 0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f, + 0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b, + 0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87, + 0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb, + 0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7, + 0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663, + 0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd, + 0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7, + 0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b, + 0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f, + 0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7, + 0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700, + 0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb, + // Block 0x58, offset 0x1600 + 0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23, + 0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53, + 0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714, + 0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b, + 0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719, + 0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728, + 0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37, + 0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57, + 0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737, + 0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741, + 0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b, + // Block 0x59, offset 0x1640 + 0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff, + 0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637, + 0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f, + 0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093, + 0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782, + 0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3, + 0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7, + 0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133, + 0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa, + 0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4, + 0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197, + // Block 0x5a, offset 0x1680 + 0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7, + 0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7, + 0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b, + 0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd, + 0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f, + 0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f, + 0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273, + 0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677, + 0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7, + 0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb, + 0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5, + 0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa, + 0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b, + 0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7, + 0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665, + 0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f, + 0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477, + 0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693, + 0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb, + 0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b, + 0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b, + // Block 0x5c, offset 0x1700 + 0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567, + 0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7, + 0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7, + 0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef, + 0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61, + 0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11, + 0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27, + 0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33, + 0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b, + 0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43, + 0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + // Block 0xe, offset 0x380 + 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, + 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1, + 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, + 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, + 0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc, + 0x3b0: 0xd7, 0x3b5: 0xdd, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xde, 0x3ec: 0xdf, + // Block 0x10, offset 0x400 + 0x432: 0xe0, + // Block 0x11, offset 0x440 + 0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3, + 0x449: 0xe4, + 0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec, + 0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c, + // Block 0x12, offset 0x480 + 0x480: 0xf3, + 0x4a3: 0xf4, 0x4a5: 0xf5, + 0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7, + 0x4c8: 0x51, 0x4c9: 0xf8, + // Block 0x14, offset 0x500 + 0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59, + 0x528: 0x5a, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 158 entries, 316 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b} + +// nfkcSparseValues: 869 entries, 3476 bytes +var nfkcSparseValues = [869]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xc, offset 0x6f + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x74 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x76 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x8f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x96 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x99 + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x13, offset 0xa0 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0xa4 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0xa8 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xaa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xac + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xb5 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xc0 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xc8 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xd2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xd5 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xdc + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xe4 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xe8 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xea + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xed + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xf1 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xf7 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0x108 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x116 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x11c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x11e + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x120 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x124 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x126 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x128 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x12a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x12d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x130 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x132 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x135 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x138 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x13c + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x141 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x14a + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x14c + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x14f + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x151 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x15c + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x167 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x175 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3f, offset 0x183 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x40, offset 0x193 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x41, offset 0x1a1 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x42, offset 0x1a8 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x43, offset 0x1ae + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x44, offset 0x1bd + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x45, offset 0x1c1 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x46, offset 0x1c3 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x47, offset 0x1c7 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x48, offset 0x1c9 + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x49, offset 0x1cc + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x4a, offset 0x1ce + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4b, offset 0x1d1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4c, offset 0x1d3 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4d, offset 0x1d6 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4e, offset 0x1d8 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4f, offset 0x1da + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x50, offset 0x1dc + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x51, offset 0x1e8 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x52, offset 0x1f2 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x53, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x54, offset 0x1ff + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x55, offset 0x203 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x56, offset 0x205 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x57, offset 0x207 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x58, offset 0x209 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x59, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x5a, offset 0x20e + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5b, offset 0x210 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5c, offset 0x212 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5d, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5e, offset 0x216 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5f, offset 0x21c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x60, offset 0x21f + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x61, offset 0x223 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x62, offset 0x225 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x63, offset 0x22c + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x64, offset 0x232 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x65, offset 0x238 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x66, offset 0x240 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x67, offset 0x246 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x68, offset 0x24c + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x69, offset 0x252 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6a, offset 0x256 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6b, offset 0x258 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6c, offset 0x25a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6d, offset 0x25c + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6e, offset 0x25e + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x264 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x70, offset 0x267 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x71, offset 0x26a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x72, offset 0x272 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x73, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x74, offset 0x27c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x75, offset 0x27f + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x76, offset 0x281 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x77, offset 0x289 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x78, offset 0x28c + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x79, offset 0x293 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7a, offset 0x296 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7b, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7c, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x2a0 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x7e, offset 0x2a3 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x7f, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x80, offset 0x2a7 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x81, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x82, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x83, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x84, offset 0x2b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x85, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x86, offset 0x2b4 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x2c1 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x88, offset 0x2cb + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x89, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8a, offset 0x2cf + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x8b, offset 0x2d3 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x8c, offset 0x2d8 + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x8d, offset 0x2e4 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x8e, offset 0x2e9 + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x8f, offset 0x2f2 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x90, offset 0x2f8 + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x91, offset 0x2fd + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x92, offset 0x301 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x93, offset 0x306 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x30a + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x95, offset 0x31a + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x96, offset 0x328 + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x97, offset 0x336 + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x98, offset 0x344 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x99, offset 0x34a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x9a, offset 0x34c + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x9b, offset 0x34f + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0x9c, offset 0x359 + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0x9d, offset 0x35b + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54226 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go new file mode 100644 index 0000000..2c58f09 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go @@ -0,0 +1,7693 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.13,!go1.14 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "11.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2, + 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0, + 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df, + 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85, + 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93, + 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c, + 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370, + 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a, + 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de, + 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7, + 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a, + 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e, + 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9, + 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465, + 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26, + 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791, + 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b, + 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4, + 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f, + 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49, + 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519, + // Block 0x14, offset 0x500 + 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532, + 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541, + 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582, + 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6, + 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1, + 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f, + 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15, + 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23, + 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a, + 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c, + 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69, + // Block 0x15, offset 0x540 + 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70, + 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1, + 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf, + 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6, + 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5, + 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11, + 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73, + 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a, + 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578, + 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a, + // Block 0x16, offset 0x580 + 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e, + 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6, + 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c, + 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0, + 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00, + 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966, + 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8, + 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6, + 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38, + 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30, + 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60, + 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58, + 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a, + 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8, + 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70, + 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996, + 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2, + 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916, + 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a, + 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c, + 0x5fc: 0x4870, 0x5fd: 0x4342, + // Block 0x18, offset 0x600 + 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac, + 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee, + 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0, + 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2, + 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134, + 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a, + 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88, + 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a, + 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98, + 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee, + 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0, + 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa, + 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af, + 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10, + 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4, + 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec, + 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b, + 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081, + 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8, + 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318, + 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000, + 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b, + 0x68d: 0xa000, + 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a, + 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000, + 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000, + 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000, + 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60, + 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78, + 0x72f: 0xa000, + 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000, + 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000, + 0x73c: 0x3fc0, 0x73d: 0x3fc8, + // Block 0x1d, offset 0x740 + 0x754: 0x3f00, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd0, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000, + 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000, + 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000, + 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040, + 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050, + 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060, + 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080, + 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8, + 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0, + 0x7bd: 0xa000, 0x7be: 0x40c8, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, + 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5, + 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb8, 0x3ec: 0xb9, + // Block 0x10, offset 0x400 + 0x432: 0xba, + // Block 0x11, offset 0x440 + 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd, + 0x449: 0xbe, + // Block 0x12, offset 0x480 + 0x480: 0xbf, + 0x4a3: 0xc0, 0x4a5: 0xc1, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc2, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 149 entries, 298 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa} + +// nfcSparseValues: 684 entries, 2736 bytes +var nfcSparseValues = [684]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xcf + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd1 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe7 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf3 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf5 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfb + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfd + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0xff + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x103 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x107 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x10f + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x112 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x115 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x119 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11e + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12e + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x139 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13d + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14b + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14e + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x154 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15a + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x165 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x169 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16b + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x16f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x171 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x173 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x179 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17d + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x17f + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x181 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x189 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x190 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x192 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x194 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x196 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x199 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a1 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ac + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1b9 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1bf + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1cd + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d3 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1d9 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1dd + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1eb + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f4 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f7 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x201 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x205 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20c + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20e + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x213 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x219 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x21f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x225 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x230 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x233 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x242 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x245 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x255 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x259 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x263 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x270 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x273 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x86, offset 0x275 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x87, offset 0x277 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x88, offset 0x279 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8a, offset 0x27e + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8b, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8c, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8d, offset 0x284 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8e, offset 0x291 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8f, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x90, offset 0x29d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x91, offset 0x29f + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x92, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x93, offset 0x2a7 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000, + 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000, + 0x452: 0x2d4e, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d56, + 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2, + 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0, + 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df, + 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85, + 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93, + 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c, + 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370, + 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a, + 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de, + 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7, + 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc, + // Block 0x16, offset 0x580 + 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a, + 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e, + 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9, + 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465, + 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26, + 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791, + 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b, + 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4, + 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f, + 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49, + 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532, + 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541, + 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582, + 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6, + 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7, + 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f, + 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15, + 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23, + 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a, + 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c, + 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69, + // Block 0x18, offset 0x600 + 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70, + 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1, + 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf, + 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6, + 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5, + 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11, + 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73, + 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a, + 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578, + 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a, + // Block 0x19, offset 0x640 + 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e, + 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6, + 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c, + 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0, + 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00, + 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966, + 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8, + 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6, + 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38, + 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30, + 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40, + // Block 0x1a, offset 0x680 + 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60, + 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58, + 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a, + 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8, + 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70, + 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996, + 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2, + 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916, + 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a, + 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c, + 0x6bc: 0x4870, 0x6bd: 0x4342, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac, + 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee, + 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0, + 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2, + 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134, + 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a, + 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88, + 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a, + 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98, + 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee, + 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287, + // Block 0x1c, offset 0x700 + 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0, + 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa, + 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af, + 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10, + 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e, + 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec, + 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b, + 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081, + 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8, + 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318, + 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c, + // Block 0x1d, offset 0x740 + 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8, + 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x222e, 0x791: 0x223a, + 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8, + 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0, + 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62, + 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000, + 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b, + 0x7cd: 0xa000, + 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a, + 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c, + 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84, + 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a, + // Block 0x22, offset 0x880 + 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8, + 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60, + 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78, + 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8, + 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10, + 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28, + 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40, + 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000, + 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000, + 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000, + 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60, + 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78, + 0x9af: 0xa000, + 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000, + 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000, + 0x9bc: 0x3fc0, 0x9bd: 0x3fc8, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f00, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000, + 0x9de: 0x3fd0, 0x9df: 0x26b4, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000, + 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000, + 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000, + 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040, + 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050, + 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060, + 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080, + 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8, + 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0, + 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9, + 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed, + 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11, + 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072, + 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096, + 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741, + 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780, + 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac, + 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108, + 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0, + 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e, + 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144, + 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114, + 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc4, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20, + 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50, + 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88, + 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11, + 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0, + 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a, + 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2, + 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6, + 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c, + 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6, + 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da, + 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8, + 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51, + 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920, + 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06, + 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c, + 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90, + 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6, + 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984, + 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07, + 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4, + 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2, + 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a, + 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47, + 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701, + 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35, + 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c, + 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9, + 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0, + 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40, + 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996, + 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad, + 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38, + 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b, + 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd, + 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e, + 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e, + 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990, + 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4, + 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee, + 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186, + 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0, + 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258, + 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e, + 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f, + 0xec6: 0x1a5f, + 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70, + 0xedd: 0x4390, + 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e, + 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e, + 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2, + 0xefc: 0x43ae, 0xefe: 0x43b4, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc, + 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378, + 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x4468, 0xf71: 0x4468, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9, + 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c, + 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89, + 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb, + 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded, + 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29, + 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b, + 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9, + 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00, + 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32, + 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50, + 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e, + 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf, + 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd, + 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff, + 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022, + 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c, + 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6, + 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7, + 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6, + 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8, + 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10, + 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96, + 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1, + 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027, + 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1, + 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e, + 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5, + 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29, + 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60, + 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9, + 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05, + 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64, + 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91, + 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe, + 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff, + 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031, + 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4, + 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92, + 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0, + 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1, + 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74, + 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba, + 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88, + 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1, + 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74, + 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f, + 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd, + 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d, + 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88, + 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b, + 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb, + 0x10fc: 0x4408, 0x10fd: 0x4408, + // Block 0x44, offset 0x1100 + 0x1110: 0x2311, 0x1111: 0x2326, + 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357, + 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4, + 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5, + 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc, + 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430, + 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c, + 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f, + 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499, + // Block 0x45, offset 0x1140 + 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df, + 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e, + 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c, + 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548, + 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c, + 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365, + 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406, + 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e, + 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca, + 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7, + 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f, + // Block 0x46, offset 0x1180 + 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b, + 0x1186: 0x23c0, 0x1187: 0x2556, + 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da, + 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc, + 0x11bc: 0x27d1, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5c, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269, + 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4, + 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e, + 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456, + 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462, + 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00, + 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82, + 0x12bc: 0x1f82, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b, + 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf, + 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7, + 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff, + 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23, + 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8c, 0x14d1: 0x1a90, + 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8, + 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0, + 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8, + 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0, + 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, + 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0, + 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe3, 0x3ec: 0xe4, + // Block 0x10, offset 0x400 + 0x432: 0xe5, + // Block 0x11, offset 0x440 + 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8, + 0x449: 0xe9, + 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1, + 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf8, + 0x4a3: 0xf9, 0x4a5: 0xfa, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc, + 0x4c8: 0x52, 0x4c9: 0xfd, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 162 entries, 324 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d} + +// nfkcSparseValues: 871 entries, 3484 bytes +var nfkcSparseValues = [871]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x22, offset 0xde + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe2 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe8 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xf9 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x105 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x107 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x115 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x117 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x119 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x123 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x126 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x129 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12d + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x132 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13d + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x140 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x142 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14d + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x158 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x166 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x174 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x184 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x192 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x199 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x19f + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1ae + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b2 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b4 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b8 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1ba + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1bf + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c4 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c7 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1c9 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cb + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1cd + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1d9 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e3 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ed + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f0 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f4 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f6 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f8 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fc + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x1ff + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x201 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x203 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x205 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x207 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20d + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x210 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x216 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x223 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x229 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x237 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23d + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x243 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x247 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x249 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24d + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x24f + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x255 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x258 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25a + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x260 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x263 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26b + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x275 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x278 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27d + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x285 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x289 + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x290 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x293 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x299 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a5 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x83, offset 0x2a7 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x84, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x85, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x87, offset 0x2b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x88, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x89, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8a, offset 0x2b6 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8b, offset 0x2c3 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x8c, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x8d, offset 0x2cf + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8e, offset 0x2d1 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x8f, offset 0x2d5 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x90, offset 0x2da + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x91, offset 0x2e6 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x92, offset 0x2eb + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x93, offset 0x2f4 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x94, offset 0x2fa + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x95, offset 0x2ff + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x96, offset 0x303 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x97, offset 0x308 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x98, offset 0x30c + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x99, offset 0x31c + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9a, offset 0x32a + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9b, offset 0x338 + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9c, offset 0x346 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9d, offset 0x34c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x9e, offset 0x34e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x9f, offset 0x351 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0xa0, offset 0x35b + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa1, offset 0x35d + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54514 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go new file mode 100644 index 0000000..10f5202 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go @@ -0,0 +1,7710 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.14 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "12.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2CA1 + endMulti = 0x2F63 + firstLeadingCCC = 0x49B1 + firstCCCZeroExcept = 0x4A7B + firstStarterWithNLead = 0x4AA2 + lastDecomp = 0x4AA4 + maxDecomp = 0x8000 +) + +// decomps: 19108 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42, + 0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, + 0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, + 0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, + 0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, + 0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, + 0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, + 0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, + 0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, + 0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, + 0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, + 0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, + 0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, + 0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, + 0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, + 0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, + 0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, + 0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, + 0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, + 0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, + 0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, + 0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, + 0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, + 0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, + 0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, + 0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, + 0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, + 0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, + 0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, + // Bytes 1a80 - 1abf + 0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, + 0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, + 0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, + 0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, + 0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, + 0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, + 0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, + 0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, + // Bytes 1ac0 - 1aff + 0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, + 0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, + 0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, + 0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, + 0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, + 0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, + 0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, + 0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, + // Bytes 1b00 - 1b3f + 0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, + 0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, + 0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, + 0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, + 0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, + 0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, + 0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, + 0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, + // Bytes 1b40 - 1b7f + 0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, + 0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, + 0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, + 0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, + 0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, + 0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, + 0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, + 0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, + // Bytes 1b80 - 1bbf + 0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, + 0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, + 0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, + 0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, + 0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, + 0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, + 0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, + 0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, + // Bytes 1bc0 - 1bff + 0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, + 0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, + 0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, + 0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, + 0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, + 0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, + 0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, + 0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, + // Bytes 1c00 - 1c3f + 0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, + 0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, + 0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, + 0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, + 0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, + 0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, + 0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, + 0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, + // Bytes 1c40 - 1c7f + 0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, + 0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, + 0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, + 0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, + 0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, + 0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, + 0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, + 0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, + // Bytes 1c80 - 1cbf + 0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, + 0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, + 0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, + 0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, + 0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, + 0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, + 0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, + 0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, + // Bytes 1cc0 - 1cff + 0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, + 0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, + 0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, + 0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, + 0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, + 0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, + 0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, + 0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, + // Bytes 1d00 - 1d3f + 0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, + 0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, + 0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, + 0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, + 0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, + 0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, + 0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, + 0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, + // Bytes 1d40 - 1d7f + 0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, + 0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, + 0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, + 0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, + 0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, + 0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, + 0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, + 0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, + // Bytes 1d80 - 1dbf + 0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, + 0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, + 0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, + 0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, + 0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, + 0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, + 0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, + 0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1dc0 - 1dff + 0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, + 0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, + 0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, + 0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, + 0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, + 0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, + 0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, + 0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, + // Bytes 1e00 - 1e3f + 0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, + 0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, + 0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, + 0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, + 0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, + 0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, + 0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, + 0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, + // Bytes 1e40 - 1e7f + 0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, + 0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, + 0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, + 0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, + 0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, + 0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, + 0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, + 0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, + // Bytes 1e80 - 1ebf + 0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, + 0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, + 0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, + 0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, + 0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, + 0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, + 0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, + 0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, + // Bytes 1ec0 - 1eff + 0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, + 0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, + 0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, + 0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, + 0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, + 0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, + 0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, + 0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1f00 - 1f3f + 0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, + 0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, + 0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, + 0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, + 0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, + 0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, + 0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, + 0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, + // Bytes 1f40 - 1f7f + 0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, + 0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, + 0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, + 0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, + 0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, + 0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, + 0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, + 0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, + // Bytes 1f80 - 1fbf + 0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, + 0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, + 0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, + 0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, + 0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, + 0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, + 0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, + 0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, + // Bytes 1fc0 - 1fff + 0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, + 0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, + 0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, + 0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, + 0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, + 0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, + 0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, + 0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, + // Bytes 2000 - 203f + 0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, + 0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, + 0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, + 0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, + 0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, + 0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, + 0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, + 0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, + // Bytes 2040 - 207f + 0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, + 0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, + 0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, + 0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, + // Bytes 2080 - 20bf + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, + 0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, + 0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, + 0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, + 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, + 0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, + // Bytes 20c0 - 20ff + 0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, + 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, + 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, + 0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, + 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, + 0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, + 0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, + 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, + // Bytes 2100 - 213f + 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, + 0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, + 0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, + 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, + 0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, + 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, + 0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, + 0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, + // Bytes 2140 - 217f + 0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, + 0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, + 0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, + 0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, + 0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, + 0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, + 0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, + 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, + // Bytes 2180 - 21bf + 0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, + 0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, + 0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, + 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, + 0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 21c0 - 21ff + 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, + 0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, + // Bytes 2200 - 223f + 0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, + 0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, + 0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, + 0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, + 0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, + 0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, + // Bytes 2240 - 227f + 0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, + 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, + 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, + // Bytes 2280 - 22bf + 0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, + 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, + 0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, + 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, + 0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, + 0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, + 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, + 0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, + // Bytes 22c0 - 22ff + 0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, + 0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, + 0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, + 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, + 0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, + 0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, + 0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, + // Bytes 2300 - 233f + 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, + 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, + // Bytes 2340 - 237f + 0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, + 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, + 0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, + 0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, + 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, + // Bytes 2380 - 23bf + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, + 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, + 0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, + 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, + 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, + // Bytes 23c0 - 23ff + 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, + 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, + // Bytes 2400 - 243f + 0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, + 0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, + 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, + 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, + 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, + 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, + 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, + // Bytes 2440 - 247f + 0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, + 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2480 - 24bf + 0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, + 0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, + 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, + // Bytes 24c0 - 24ff + 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, + 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, + // Bytes 2500 - 253f + 0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, + 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, + 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + // Bytes 2540 - 257f + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, + 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, + // Bytes 2580 - 25bf + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, + 0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, + 0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + // Bytes 25c0 - 25ff + 0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, + 0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, + 0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, + 0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, + // Bytes 2640 - 267f + 0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, + 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, + 0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, + 0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, + 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, + 0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46, + 0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3, + // Bytes 26c0 - 26ff + 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82, + 0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3, + 0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83, + 0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, + 0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3, + 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4, + // Bytes 2700 - 273f + 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3, + 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6, + 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92, + 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, + 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80, + 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83, + // Bytes 2740 - 277f + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, + // Bytes 2780 - 27bf + 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, + 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8, + // Bytes 27c0 - 27ff + 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, + 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3, + 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB, + 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5, + 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8, + 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF, + 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + // Bytes 2800 - 283f + 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, + 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4, + 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + // Bytes 2840 - 287f + 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, + 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97, + // Bytes 2880 - 28bf + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, + 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, + 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49, + // Bytes 28c0 - 28ff + 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, + 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, + 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82, + 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49, + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49, + 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, + // Bytes 2940 - 297f + 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, + 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + // Bytes 2980 - 29bf + 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49, + 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, + 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, + // Bytes 29c0 - 29ff + 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, + 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, + 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82, + 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, + 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + // Bytes 2a40 - 2a7f + 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + // Bytes 2a80 - 2abf + 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, + 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C, + 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, + 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, + 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, + 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, + 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F, + // Bytes 2b00 - 2b3f + 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9, + 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b40 - 2b7f + 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51, + 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB, + // Bytes 2bc0 - 2bff + 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52, + 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82, + // Bytes 2c00 - 2c3f + 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, + 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, + 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, + 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61, + // Bytes 2c80 - 2cbf + 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, + 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20, + 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, + 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, + 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, + 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, + // Bytes 2cc0 - 2cff + 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, + 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, + 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, + 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, + 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, + // Bytes 2d00 - 2d3f + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, + 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, + 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, + 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, + 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, + // Bytes 2d40 - 2d7f + 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, + 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, + // Bytes 2d80 - 2dbf + 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91, + 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2, + 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, + 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08, + 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97, + 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, + 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, + 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91, + // Bytes 2dc0 - 2dff + 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08, + 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF, + 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91, + 0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, + 0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44, + 0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A, + // Bytes 2e00 - 2e3f + 0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, + // Bytes 2e40 - 2e7f + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, + 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, + // Bytes 2e80 - 2ebf + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, + 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, + 0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, + 0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1, + 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, + 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, + 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, + // Bytes 2f00 - 2f3f + 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, + 0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, + 0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3, + 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52, + // Bytes 2f40 - 2f7f + 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0, + 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, + 0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, + 0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03, + 0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83, + // Bytes 2f80 - 2fbf + 0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41, + 0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9, + 0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC, + 0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03, + 0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87, + 0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42, + 0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9, + 0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC, + // Bytes 2fc0 - 2fff + 0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03, + 0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C, + 0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44, + 0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5, + 0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC, + 0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03, + 0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86, + 0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45, + // Bytes 3000 - 303f + 0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9, + 0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC, + 0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03, + 0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD, + 0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46, + 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9, + 0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC, + 0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03, + // Bytes 3040 - 307f + 0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C, + 0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48, + 0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9, + 0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC, + 0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03, + 0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE, + 0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49, + 0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9, + // Bytes 3080 - 30bf + 0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC, + 0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03, + 0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89, + 0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49, + 0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9, + 0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC, + 0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03, + 0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81, + // Bytes 30c0 - 30ff + 0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B, + 0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5, + 0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC, + 0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03, + 0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD, + 0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D, + 0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9, + 0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, + // Bytes 3100 - 313f + 0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03, + 0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87, + 0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E, + 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5, + 0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC, + 0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03, + 0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86, + 0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F, + // Bytes 3140 - 317f + 0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9, + 0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC, + 0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03, + 0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81, + 0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52, + 0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9, + 0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC, + 0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3180 - 31bf + 0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87, + 0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53, + 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9, + 0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC, + 0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03, + 0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD, + 0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55, + 0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9, + // Bytes 31c0 - 31ff + 0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC, + 0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03, + 0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B, + 0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55, + 0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9, + 0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC, + 0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03, + 0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0, + // Bytes 3200 - 323f + 0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56, + 0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9, + 0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC, + 0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03, + 0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3, + 0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9, + 0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC, + // Bytes 3240 - 327f + 0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03, + 0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87, + 0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59, + 0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5, + 0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC, + 0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03, + 0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3, + 0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61, + // Bytes 3280 - 32bf + 0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9, + 0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC, + 0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03, + 0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F, + 0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61, + 0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5, + 0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC, + 0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 32c0 - 32ff + 0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82, + 0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63, + 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9, + 0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, + 0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03, + 0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1, + 0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65, + 0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9, + // Bytes 3300 - 333f + 0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC, + 0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03, + 0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C, + 0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65, + 0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5, + 0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC, + 0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03, + 0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82, + // Bytes 3340 - 337f + 0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67, + 0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9, + 0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC, + 0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03, + 0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88, + 0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68, + 0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5, + 0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC, + // Bytes 3380 - 33bf + 0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03, + 0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82, + 0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69, + 0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9, + 0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC, + 0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03, + 0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3, + 0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69, + // Bytes 33c0 - 33ff + 0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9, + 0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, + 0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03, + 0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7, + 0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C, + 0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9, + 0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC, + 0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3400 - 343f + 0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87, + 0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, + 0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9, + 0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC, + 0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03, + 0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7, + 0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E, + 0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9, + // Bytes 3440 - 347f + 0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC, + 0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03, + 0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C, + 0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F, + 0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9, + 0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, + 0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03, + 0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F, + // Bytes 3480 - 34bf + 0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72, + 0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5, + 0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC, + 0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03, + 0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87, + 0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74, + 0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5, + 0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC, + // Bytes 34c0 - 34ff + 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03, + 0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80, + 0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75, + 0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9, + 0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC, + 0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03, + 0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F, + 0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75, + // Bytes 3500 - 353f + 0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5, + 0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC, + 0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03, + 0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3, + 0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77, + 0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9, + 0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC, + 0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03, + // Bytes 3540 - 357f + 0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87, + 0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9, + 0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC, + 0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03, + 0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88, + 0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79, + 0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5, + // Bytes 3580 - 35bf + 0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC, + 0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03, + 0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3, + 0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2, + 0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC, + 0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA, + 0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3, + 0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC, + // Bytes 35c0 - 35ff + 0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9, + 0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3, + 0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC, + 0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, + 0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE, + 0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 3600 - 363f + 0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD, + 0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9, + // Bytes 3640 - 367f + 0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC, + 0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9, + 0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, + 0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, + 0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, + 0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD, + // Bytes 3680 - 36bf + 0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + 0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9, + 0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE, + 0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, + 0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9, + 0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE, + // Bytes 36c0 - 36ff + 0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, + 0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF, + 0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC, + 0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9, + 0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF, + 0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD, + 0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9, + // Bytes 3700 - 373f + 0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF, + 0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC, + // Bytes 3740 - 377f + 0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC, + 0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0, + 0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, + 0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9, + 0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + // Bytes 3780 - 37bf + 0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9, + 0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9, + 0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0, + 0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, + 0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9, + // Bytes 37c0 - 37ff + 0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0, + 0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, + 0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9, + 0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0, + 0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC, + 0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1, + 0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC, + // Bytes 3800 - 383f + 0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9, + 0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1, + 0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC, + 0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9, + 0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1, + 0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC, + 0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9, + 0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3, + // Bytes 3840 - 387f + 0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, + 0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9, + 0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9, + 0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, + // Bytes 3880 - 38bf + 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, + 0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41, + 0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87, + 0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC, + 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, + // Bytes 38c0 - 38ff + 0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, + 0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45, + 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC, + 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, + 0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + // Bytes 3900 - 393f + 0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49, + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC, + 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82, + 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, + 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, + 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3940 - 397f + 0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC, + 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84, + 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC, + 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + // Bytes 3980 - 39bf + 0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, + 0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA, + 0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, + 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55, + 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, + // Bytes 39c0 - 39ff + 0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, + 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + 0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + // Bytes 3a00 - 3a3f + 0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61, + 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC, + // Bytes 3a40 - 3a7f + 0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, + 0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, + 0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63, + 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, + 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82, + 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, + 0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, + // Bytes 3a80 - 3abf + 0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65, + 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3, + 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + // Bytes 3ac0 - 3aff + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84, + 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, + 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, + 0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, + // Bytes 3b00 - 3b3f + 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + 0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, + 0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, + 0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, + 0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73, + // Bytes 3b40 - 3b7f + 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84, + 0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, + 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, + 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75, + 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, + // Bytes 3b80 - 3bbf + 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, + 0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA, + 0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05, + 0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF, + 0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90, + // Bytes 3bc0 - 3bff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, + 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, + // Bytes 3c00 - 3c3f + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, + // Bytes 3c40 - 3c7f + 0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, + // Bytes 3c80 - 3cbf + 0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3cc0 - 3cff + 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, + 0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + // Bytes 3d00 - 3d3f + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + // Bytes 3d40 - 3d7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94, + // Bytes 3d80 - 3dbf + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + // Bytes 3dc0 - 3dff + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82, + // Bytes 3e00 - 3e3f + 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + // Bytes 3e40 - 3e7f + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88, + // Bytes 3e80 - 3ebf + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81, + // Bytes 3ec0 - 3eff + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94, + 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82, + 0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, + 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0, + 0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0, + // Bytes 3f00 - 3f3f + 0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3, + // Bytes 3f40 - 3f7f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3, + // Bytes 3f80 - 3fbf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3, + // Bytes 3fc0 - 3fff + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3, + // Bytes 4000 - 403f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3, + // Bytes 4040 - 407f + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + // Bytes 4080 - 40bf + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3, + // Bytes 40c0 - 40ff + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3, + 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3, + 0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, + // Bytes 4100 - 413f + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + // Bytes 4140 - 417f + 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, + // Bytes 4180 - 41bf + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 41c0 - 41ff + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, + 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, + 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, + 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, + 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, + // Bytes 4200 - 423f + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, + 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, + 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, + 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99, + // Bytes 4240 - 427f + 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, + 0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, + 0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, + 0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, + 0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43, + 0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85, + 0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20, + 0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9, + // Bytes 4280 - 42bf + 0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC, + 0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43, + 0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7, + 0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20, + 0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9, + 0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9, + 0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43, + 0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E, + // Bytes 42c0 - 42ff + 0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20, + 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71, + 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC, + 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44, + 0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3, + 0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81, + 0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97, + // Bytes 4300 - 433f + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, + 0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7, + 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81, + 0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44, + // Bytes 4340 - 437f + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89, + 0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7, + 0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44, + 0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9, + // Bytes 4380 - 43bf + 0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4, + 0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, + 0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0, + // Bytes 43c0 - 43ff + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, + 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, + 0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44, + 0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, + 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81, + 0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44, + // Bytes 4400 - 443f + 0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2, + 0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, + 0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, + 0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44, + 0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80, + 0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F, + // Bytes 4440 - 447f + 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44, + 0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80, + 0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0, + 0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44, + 0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A, + 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94, + 0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45, + 0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20, + // Bytes 4480 - 44bf + 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, + 0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, + // Bytes 44c0 - 44ff + 0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E, + 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, + 0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A, + 0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, + 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46, + // Bytes 4500 - 453f + 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46, + 0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46, + 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46, + 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46, + 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48, + 0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, + 0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49, + 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + // Bytes 4600 - 463f + 0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, + 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + // Bytes 4640 - 467f + 0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, + 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, + 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, + // Bytes 4680 - 46bf + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9, + 0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC, + 0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83, + 0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3, + 0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45, + 0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9, + 0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC, + // Bytes 46c0 - 46ff + 0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83, + 0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82, + 0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F, + 0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9, + 0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC, + 0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83, + 0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3, + 0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53, + // Bytes 4700 - 473f + 0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5, + 0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC, + 0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83, + 0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82, + 0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61, + 0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9, + 0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC, + 0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 4740 - 477f + 0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84, + 0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65, + 0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9, + 0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + 0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83, + 0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87, + 0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F, + 0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5, + // Bytes 4780 - 47bf + 0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC, + 0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83, + 0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3, + 0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75, + 0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9, + 0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84, + // Bytes 47c0 - 47ff + 0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94, + 0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84, + 0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80, + // Bytes 4800 - 483f + 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84, + 0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1, + 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82, + 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81, + 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, + // Bytes 4840 - 487f + 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88, + 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84, + 0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF, + 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94, + 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84, + 0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80, + 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84, + // Bytes 4880 - 48bf + 0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89, + 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82, + 0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 48c0 - 48ff + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, + // Bytes 4900 - 493f + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, + // Bytes 4940 - 497f + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 4980 - 49bf + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, + 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC, + 0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32, + // Bytes 49c0 - 49ff + 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, + // Bytes 4a00 - 4a3f + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, + // Bytes 4a40 - 4a7f + 0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4a80 - 4abf + 0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, + 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, + 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, + 0x9E, 0x26, 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, + // Block 0x5, offset 0x140 + 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a4, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e, + 0x2c6: 0xa000, 0x2c7: 0x370c, + 0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3736, 0x302: 0x37ba, + 0x310: 0x3712, 0x311: 0x3796, + 0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0, + 0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2, + 0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0, + 0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808, + 0x338: 0x378a, 0x339: 0x380e, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d, + 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d, + 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d, + 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132, + 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132, + 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000, + 0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000, + 0x412: 0x2d51, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d59, + 0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132, + 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132, + 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132, + 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132, + 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132, + 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132, + 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132, + 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132, + 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132, + 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132, + 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d, + // Block 0x12, offset 0x480 + 0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5, + 0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3, + 0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2, + 0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88, + 0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96, + 0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f, + 0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373, + 0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d, + 0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1, + 0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa, + 0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d, + 0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431, + 0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc, + 0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468, + 0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29, + 0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794, + 0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e, + 0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7, + 0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512, + 0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c, + 0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c, + // Block 0x14, offset 0x500 + 0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535, + 0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544, + 0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585, + 0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9, + 0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4, + 0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292, + 0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18, + 0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26, + 0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d, + 0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f, + 0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c, + // Block 0x15, offset 0x540 + 0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73, + 0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4, + 0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2, + 0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9, + 0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8, + 0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14, + 0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76, + 0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d, + 0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b, + 0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d, + // Block 0x16, offset 0x580 + 0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941, + 0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9, + 0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f, + 0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3, + 0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03, + 0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969, + 0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb, + 0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9, + 0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b, + 0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33, + 0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63, + 0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b, + 0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d, + 0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab, + 0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73, + 0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999, + 0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5, + 0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919, + 0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d, + 0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f, + 0x5fc: 0x4873, 0x5fd: 0x4345, + // Block 0x18, offset 0x600 + 0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af, + 0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1, + 0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3, + 0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5, + 0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137, + 0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d, + 0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b, + 0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d, + 0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b, + 0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1, + 0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3, + 0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd, + 0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2, + 0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13, + 0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7, + 0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef, + 0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e, + 0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081, + 0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb, + 0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b, + 0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000, + 0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e, + 0x68d: 0xa000, + 0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d, + 0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000, + 0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000, + 0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000, + 0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63, + 0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b, + 0x72f: 0xa000, + 0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000, + 0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000, + 0x73c: 0x3fc3, 0x73d: 0x3fcb, + // Block 0x1d, offset 0x740 + 0x754: 0x3f03, + 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x3fd3, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000, + 0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000, + 0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000, + 0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043, + 0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053, + 0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063, + 0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083, + 0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb, + 0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3, + 0x7bd: 0xa000, 0x7be: 0x40cb, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb, + 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943, + 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3, + 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43, + 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87, + 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283, + 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f, + 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853, + 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b, + 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b, + 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b, + // Block 0x20, offset 0x800 + 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b, + 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f, + 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7, + 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127, + 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357, + 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873, + 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3, + 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b, + 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57, + 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb, + 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b, + // Block 0x21, offset 0x840 + 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f, + 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3, + 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83, + 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193, + 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b, + 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b, + 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f, + 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b, + 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753, + 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777, + 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73, + // Block 0x22, offset 0x880 + 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3, + 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47, + 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af, + 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df, + 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817, + 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3, + 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457, + 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b, + 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27, + 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f, + 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03, + 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27, + 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af, + 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3, + 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb, + 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353, + 0x8e5: 0x1407, 0x8e6: 0x1433, + 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7, + 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897, + 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93, + 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3, + // Block 0x24, offset 0x900 + 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b, + 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f, + 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f, + 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f, + 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff, + 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f, + 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f, + 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3, + 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7, + 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963, + 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f, + // Block 0x25, offset 0x940 + 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b, + 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb, + 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf, + 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f, + 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013, + 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f, + 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b, + 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b, + 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb, + 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343, + 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f, + // Block 0x26, offset 0x980 + 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b, + 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b, + 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2, + 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809, + 0x998: 0x1617, 0x999: 0x1627, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757, + 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773, + 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3, + 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf, + 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff, + 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f, + 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867, + 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af, + 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93, + 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3, + 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917, + // Block 0x28, offset 0xa00 + 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f, + 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983, + 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf, + 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3, + 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef, + 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23, + 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37, + 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63, + 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f, + 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692, + 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7, + // Block 0x29, offset 0xa40 + 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb, + 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f, + 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6, + 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9, + 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83, + 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3, + 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf, + 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7, + 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f, + 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b, + 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87, + 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb, + 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7, + 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663, + 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd, + 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7, + 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b, + 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f, + 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7, + 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700, + 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23, + 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53, + 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714, + 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b, + 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719, + 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728, + 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37, + 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57, + 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737, + 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741, + 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff, + 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637, + 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f, + 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093, + 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782, + 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3, + 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7, + 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133, + 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa, + 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4, + 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197, + // Block 0x2d, offset 0xb40 + 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7, + 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7, + 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b, + 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd, + 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f, + 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f, + 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273, + 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677, + 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7, + 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb, + 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5, + 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa, + 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b, + 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7, + 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665, + 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f, + 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477, + 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693, + 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb, + 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b, + 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567, + 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7, + 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7, + 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef, + 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40, + 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47, + 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d, + 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55, + // Block 0x5, offset 0x140 + 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b, + 0x14d: 0x5c, + 0x15c: 0x5d, 0x15f: 0x5e, + 0x162: 0x5f, 0x164: 0x60, + 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66, + 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + 0x374: 0xa1, + 0x37d: 0xa2, + // Block 0xe, offset 0x380 + 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6, + 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa, + 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf, + 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1, + 0x3a0: 0xb2, 0x3a7: 0xb3, + 0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6, + 0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xb9, 0x3ec: 0xba, + // Block 0x10, offset 0x400 + 0x432: 0xbb, + // Block 0x11, offset 0x440 + 0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe, + 0x449: 0xbf, + // Block 0x12, offset 0x480 + 0x480: 0xc0, 0x484: 0xba, + 0x48b: 0xc1, + 0x4a3: 0xc2, 0x4a5: 0xc3, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xc4, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 151 entries, 302 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af} + +// nfcSparseValues: 689 entries, 2756 bytes +var nfcSparseValues = [689]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4843, lo: 0x8a, hi: 0x8a}, + {value: 0x4861, lo: 0x8b, hi: 0x8b}, + {value: 0x36ca, lo: 0x8c, hi: 0x8c}, + {value: 0x36e2, lo: 0x8d, hi: 0x8d}, + {value: 0x4879, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3700, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x72 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x79 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x7c + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x84 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x88 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x8c + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0x8e + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0x90 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0x99 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xa4 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xa9 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xac + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xc0 + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xcb + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xcd + {value: 0x0000, lo: 0x02}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x23, offset 0xd0 + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x24, offset 0xd2 + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xd7 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xe8 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0xf4 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0xf6 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0xfc + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0xfe + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x100 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x104 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x108 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x10b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x110 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x113 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x116 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x11a + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x11f + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x128 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x12a + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x12d + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x12f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x13a + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3c, offset 0x13e + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3d, offset 0x14c + {value: 0x427e, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x3e, offset 0x14f + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x3f, offset 0x155 + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x40, offset 0x15b + {value: 0x6405, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x41, offset 0x166 + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x42, offset 0x16a + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x43, offset 0x16c + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x44, offset 0x16e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x45, offset 0x170 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x46, offset 0x172 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x47, offset 0x174 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x48, offset 0x17a + {value: 0x0000, lo: 0x03}, + {value: 0x4aa2, lo: 0xb3, hi: 0xb3}, + {value: 0x4aa2, lo: 0xb5, hi: 0xb6}, + {value: 0x4aa2, lo: 0xba, hi: 0xbf}, + // Block 0x49, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x4aa2, lo: 0x8f, hi: 0xa3}, + // Block 0x4a, offset 0x180 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4b, offset 0x182 + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4c, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4d, offset 0x18e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x4e, offset 0x191 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x4f, offset 0x193 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x50, offset 0x195 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x51, offset 0x197 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x52, offset 0x19a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x53, offset 0x19c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x54, offset 0x19e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x55, offset 0x1a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x56, offset 0x1a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x57, offset 0x1a8 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x58, offset 0x1ab + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x59, offset 0x1ad + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5a, offset 0x1b4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5b, offset 0x1ba + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5c, offset 0x1c0 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5d, offset 0x1c8 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x5e, offset 0x1ce + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x5f, offset 0x1d4 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x60, offset 0x1da + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x61, offset 0x1de + {value: 0x0006, lo: 0x0d}, + {value: 0x4393, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4405, lo: 0x9f, hi: 0x9f}, + {value: 0x43f3, lo: 0xaa, hi: 0xab}, + {value: 0x44f7, lo: 0xac, hi: 0xac}, + {value: 0x44ff, lo: 0xad, hi: 0xad}, + {value: 0x434b, lo: 0xae, hi: 0xb1}, + {value: 0x4369, lo: 0xb2, hi: 0xb4}, + {value: 0x4381, lo: 0xb5, hi: 0xb6}, + {value: 0x438d, lo: 0xb8, hi: 0xb8}, + {value: 0x4399, lo: 0xb9, hi: 0xbb}, + {value: 0x43b1, lo: 0xbc, hi: 0xbc}, + {value: 0x43b7, lo: 0xbe, hi: 0xbe}, + // Block 0x62, offset 0x1ec + {value: 0x0006, lo: 0x08}, + {value: 0x43bd, lo: 0x80, hi: 0x81}, + {value: 0x43c9, lo: 0x83, hi: 0x84}, + {value: 0x43db, lo: 0x86, hi: 0x89}, + {value: 0x43ff, lo: 0x8a, hi: 0x8a}, + {value: 0x437b, lo: 0x8b, hi: 0x8b}, + {value: 0x4363, lo: 0x8c, hi: 0x8c}, + {value: 0x43ab, lo: 0x8d, hi: 0x8d}, + {value: 0x43d5, lo: 0x8e, hi: 0x8e}, + // Block 0x63, offset 0x1f5 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x64, offset 0x1f8 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x65, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x66, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x67, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x68, offset 0x202 + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x69, offset 0x206 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6a, offset 0x20b + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6b, offset 0x20d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6c, offset 0x20f + {value: 0x0000, lo: 0x04}, + {value: 0x4aa2, lo: 0x9e, hi: 0x9f}, + {value: 0x4aa2, lo: 0xa3, hi: 0xa3}, + {value: 0x4aa2, lo: 0xa5, hi: 0xa6}, + {value: 0x4aa2, lo: 0xaa, hi: 0xaf}, + // Block 0x6d, offset 0x214 + {value: 0x0000, lo: 0x05}, + {value: 0x4aa2, lo: 0x82, hi: 0x87}, + {value: 0x4aa2, lo: 0x8a, hi: 0x8f}, + {value: 0x4aa2, lo: 0x92, hi: 0x97}, + {value: 0x4aa2, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x6e, offset 0x21a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6f, offset 0x21c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x70, offset 0x21e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x71, offset 0x220 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x226 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x73, offset 0x229 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x74, offset 0x22b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x231 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x234 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x23c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x249 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x24b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7c, offset 0x24e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7d, offset 0x256 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7e, offset 0x25a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7f, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x80, offset 0x264 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x81, offset 0x26a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x82, offset 0x26c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x83, offset 0x26f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x84, offset 0x271 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x85, offset 0x274 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x86, offset 0x276 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x87, offset 0x278 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x88, offset 0x27a + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x89, offset 0x27c + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x8a, offset 0x27f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x8b, offset 0x281 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x8c, offset 0x283 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8d, offset 0x285 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8e, offset 0x287 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8f, offset 0x294 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x90, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x91, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x92, offset 0x2a2 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x93, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x94, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x95, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x96, offset 0x2af + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 92: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 92 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 94 blocks, 6016 entries, 12032 bytes +// The third block is the zero block. +var nfkcValues = [6016]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f, + 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe, + 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107, + 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0, + 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238, + 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288, + 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6, + 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753, + 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762, + 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6, + 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c, + // Block 0x4, offset 0x100 + 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab, + 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9, + 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8, + 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305, + 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c, + 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355, + 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391, + 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9, + 0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3, + 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df, + 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf, + // Block 0x5, offset 0x140 + 0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b, + 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f, + 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f, + 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486, + 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490, + 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd, + 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799, + 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5, + 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b, + 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a, + 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2df1, 0x185: 0x2df7, + 0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d, + 0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143, + 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb, + 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53, + 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8, + 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2, + 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0, + 0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337, + 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49, + 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319, + 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af, + 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c, + 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9, + 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8, + 0x1de: 0x305d, 0x1df: 0x3369, + 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e, + 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c, + 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a8, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425d, 0x285: 0x447e, + 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628, + 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac, + 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861, + 0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e, + 0x306: 0xa000, 0x307: 0x370c, + 0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3736, 0x342: 0x37ba, + 0x350: 0x3712, 0x351: 0x3796, + 0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0, + 0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2, + 0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0, + 0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808, + 0x378: 0x378a, 0x379: 0x380e, + // Block 0xe, offset 0x380 + 0x387: 0x1d64, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d87, + 0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d, + // Block 0x10, offset 0x400 + 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132, + 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132, + 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d, + 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d, + 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d, + 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132, + 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132, + 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000, + 0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000, + 0x452: 0x2d51, + 0x474: 0x8102, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2d59, + 0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8, + 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107, + 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0, + 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be, + 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa, + 0x4aa: 0x01fd, + 0x4b8: 0x020c, + // Block 0x13, offset 0x4c0 + 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101, + 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116, + 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128, + 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137, + 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec, + 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5, + 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0, + // Block 0x14, offset 0x500 + 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132, + 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132, + 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132, + 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132, + 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132, + 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132, + 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132, + 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132, + 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132, + 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132, + 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d, + // Block 0x15, offset 0x540 + 0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5, + 0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3, + 0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2, + 0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88, + 0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96, + 0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f, + 0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373, + 0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d, + 0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1, + 0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa, + 0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff, + // Block 0x16, offset 0x580 + 0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d, + 0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431, + 0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc, + 0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468, + 0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29, + 0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794, + 0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e, + 0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7, + 0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512, + 0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c, + 0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535, + 0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544, + 0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585, + 0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9, + 0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da, + 0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292, + 0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18, + 0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26, + 0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d, + 0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f, + 0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c, + // Block 0x18, offset 0x600 + 0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73, + 0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4, + 0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2, + 0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9, + 0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8, + 0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14, + 0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76, + 0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d, + 0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b, + 0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d, + // Block 0x19, offset 0x640 + 0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941, + 0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9, + 0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f, + 0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3, + 0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03, + 0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969, + 0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb, + 0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9, + 0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b, + 0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33, + 0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43, + // Block 0x1a, offset 0x680 + 0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63, + 0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b, + 0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d, + 0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab, + 0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73, + 0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999, + 0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5, + 0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919, + 0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d, + 0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f, + 0x6bc: 0x4873, 0x6bd: 0x4345, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af, + 0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1, + 0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3, + 0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5, + 0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137, + 0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d, + 0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b, + 0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d, + 0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b, + 0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1, + 0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a, + // Block 0x1c, offset 0x700 + 0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3, + 0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd, + 0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2, + 0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13, + 0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1, + 0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef, + 0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e, + 0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081, + 0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb, + 0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b, + 0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f, + // Block 0x1d, offset 0x740 + 0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb, + 0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab, + 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215, + 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b, + 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0, + // Block 0x1e, offset 0x780 + 0x780: 0x0463, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x2231, 0x791: 0x223d, + 0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb, + 0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3, + 0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963, + 0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071, + 0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65, + 0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000, + 0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e, + 0x7cd: 0xa000, + 0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d, + 0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882, + 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894, + 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f, + 0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87, + 0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d, + // Block 0x22, offset 0x880 + 0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab, + 0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb, + 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63, + 0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b, + 0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb, + 0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13, + 0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b, + 0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43, + 0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713, + 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab, + 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803, + 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887, + 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db, + 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb, + 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b, + 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7, + 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33, + 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63, + 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f, + // Block 0x24, offset 0x900 + 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb, + 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b, + 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb, + 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3, + 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f, + 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83, + 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7, + 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f, + 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf, + 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f, + 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187, + // Block 0x25, offset 0x940 + 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3, + 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb, + 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b, + 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b, + 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf, + 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f, + 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f, + 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503, + 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f, + 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f, + 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000, + 0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000, + 0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000, + 0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63, + 0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b, + 0x9af: 0xa000, + 0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000, + 0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000, + 0x9bc: 0x3fc3, 0x9bd: 0x3fcb, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x3f03, + 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000, + 0x9de: 0x3fd3, 0x9df: 0x26b7, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000, + 0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000, + 0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000, + 0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043, + 0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053, + 0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063, + 0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083, + 0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb, + 0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3, + 0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc, + // Block 0x29, offset 0xa40 + 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337, + 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f, + 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc, + 0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0, + 0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14, + 0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38, + 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef, + 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403, + 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383, + 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b, + 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab, + // Block 0x2a, offset 0xa80 + 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb, + 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7, + 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3, + 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7, + 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff, + 0xa9e: 0x098f, 0xa9f: 0x072f, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075, + 0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099, + 0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744, + 0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783, + 0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf, + 0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b, + 0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3, + 0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111, + 0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147, + 0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117, + 0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9, + // Block 0x2c, offset 0xb00 + 0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03, + 0xb06: 0x0ca7, 0xb07: 0x10c7, + 0xb10: 0x1bc7, 0xb11: 0x18a9, + 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb, + 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3, + 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327, + 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b, + 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23, + 0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53, + 0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b, + 0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af, + 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f, + 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b, + 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f, + 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f, + 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b, + 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f, + 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b, + 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee, + 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900, + 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14, + 0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3, + 0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3, + 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7, + 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f, + 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b, + 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543, + 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b, + 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f, + 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597, + 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d, + 0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5, + 0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9, + 0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f, + 0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9, + 0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd, + 0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb, + 0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54, + 0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923, + 0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09, + 0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1, + // Block 0x30, offset 0xc00 + 0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f, + 0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93, + 0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9, + 0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987, + 0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a, + 0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7, + 0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5, + 0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d, + 0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a, + 0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704, + 0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3, + // Block 0x31, offset 0xc40 + 0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969, + 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38, + 0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f, + 0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc, + 0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3, + 0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43, + 0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999, + 0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0, + 0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b, + 0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e, + 0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987, + // Block 0x32, offset 0xc80 + 0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0, + 0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e, + 0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11, + 0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993, + 0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7, + 0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1, + 0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189, + 0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3, + 0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b, + 0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291, + 0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb, + 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943, + 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3, + 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43, + 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87, + 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283, + 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f, + 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853, + 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b, + 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b, + 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b, + // Block 0x34, offset 0xd00 + 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b, + 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f, + 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7, + 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127, + 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357, + 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873, + 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3, + 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b, + 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57, + 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb, + 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b, + // Block 0x35, offset 0xd40 + 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f, + 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3, + 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83, + 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193, + 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b, + 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b, + 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f, + 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b, + 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753, + 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777, + 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73, + // Block 0x36, offset 0xd80 + 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3, + 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47, + 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af, + 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df, + 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817, + 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3, + 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457, + 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b, + 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27, + 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f, + 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03, + 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27, + 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af, + 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3, + 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb, + 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353, + 0xde5: 0x1407, 0xde6: 0x1433, + 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7, + 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897, + 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93, + 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3, + // Block 0x38, offset 0xe00 + 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b, + 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f, + 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f, + 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f, + 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff, + 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f, + 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f, + 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3, + 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7, + 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963, + 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f, + // Block 0x39, offset 0xe40 + 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b, + 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb, + 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf, + 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f, + 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013, + 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f, + 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b, + 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b, + 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb, + 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343, + 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f, + // Block 0x3a, offset 0xe80 + 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b, + 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b, + 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2, + 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809, + 0xe98: 0x1617, 0xe99: 0x1627, + // Block 0x3b, offset 0xec0 + 0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62, + 0xec6: 0x1a62, + 0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73, + 0xedd: 0x4393, + 0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221, + 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017, + 0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351, + 0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381, + 0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5, + 0xefc: 0x43b1, 0xefe: 0x43b7, + // Block 0x3c, offset 0xf00 + 0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf, + 0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b, + 0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299, + 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5, + 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab, + 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8, + 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c, + 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2, + 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1, + 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4, + 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7, + // Block 0x3d, offset 0xf40 + 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd, + 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9, + 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5, + 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1, + 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de, + 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7, + 0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed, + 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308, + 0xf70: 0x446b, 0xf71: 0x446b, + // Block 0x3e, offset 0xf80 + 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6, + 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052, + 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc, + 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d, + 0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec, + 0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f, + 0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3, + 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c, + 0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe, + 0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0, + 0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c, + 0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e, + 0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc, + 0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03, + 0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35, + 0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53, + 0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71, + 0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2, + 0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0, + 0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002, + 0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025, + 0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f, + 0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9, + 0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa, + 0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9, + 0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb, + 0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13, + 0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58, + // Block 0x41, offset 0x1040 + 0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99, + 0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4, + 0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a, + 0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4, + 0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91, + 0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8, + 0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c, + 0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63, + 0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc, + 0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08, + 0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30, + // Block 0x42, offset 0x1080 + 0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67, + 0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94, + 0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1, + 0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002, + 0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034, + 0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7, + 0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95, + 0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3, + 0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4, + 0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77, + 0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd, + 0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b, + 0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4, + 0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77, + 0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22, + 0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0, + 0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90, + 0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b, + 0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e, + 0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe, + 0x10fc: 0x440b, 0x10fd: 0x440b, + // Block 0x44, offset 0x1100 + 0x1110: 0x2314, 0x1111: 0x2329, + 0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a, + 0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7, + 0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8, + 0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df, + 0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433, + 0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f, + 0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472, + 0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c, + // Block 0x45, offset 0x1140 + 0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2, + 0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521, + 0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f, + 0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b, + 0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f, + 0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368, + 0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409, + 0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591, + 0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd, + 0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa, + 0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392, + // Block 0x46, offset 0x1180 + 0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e, + 0x1186: 0x23c3, 0x1187: 0x2559, + 0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd, + 0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff, + 0x11bc: 0x27d4, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x0483, + 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf, + 0x11d8: 0x04c3, 0x11d9: 0x1b5f, + 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132, + 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d, + 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132, + 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab, + 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b, + // Block 0x48, offset 0x1200 + 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c, + 0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7, + 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7, + 0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441, + 0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d, + // Block 0x49, offset 0x1240 + 0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459, + 0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465, + 0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c, + 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242, + 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248, + 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b, + 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251, + 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a, + 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260, + 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263, + 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c, + 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f, + 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275, + 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278, + 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e, + 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281, + 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287, + 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d, + 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03, + 0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85, + 0x12bc: 0x1f85, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f, + 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7, + 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f, + 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb, + 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503, + 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f, + 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547, + 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f, + 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583, + 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7, + 0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e, + 0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327, + 0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e, + 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337, + 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f, + 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b, + // Block 0x4d, offset 0x1340 + 0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2, + 0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea, + 0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02, + 0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26, + 0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b, + 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d, + 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085, + 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091, + 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d, + 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9, + 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5, + 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176, + 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188, + 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a, + 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9, + 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0, + 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209, + 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027, + 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033, + 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b, + 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023, + 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f, + 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027, + 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033, + 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b, + 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4, + 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248, + 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290, + 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1442: 0x0248, + 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e, + 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263, + 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e, + 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4, + 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248, + 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290, + 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f, + 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242, + 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272, + 0x147c: 0x0293, 0x147e: 0x02cc, + // Block 0x52, offset 0x1480 + 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a, + 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e, + 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263, + 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e, + 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272, + 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251, + 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290, + 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f, + 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242, + 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8, + 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927, + 0x14d0: 0x1a8f, 0x14d1: 0x1a93, + 0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab, + 0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3, + 0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb, + 0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3, + 0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4, + 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d, + 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059, + 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061, + // Block 0x54, offset 0x1500 + 0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503, + 0x1510: 0x0c0f, 0x1511: 0x0a47, + 0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff, + 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b, + 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b, + 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf, + 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b, + 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43, + 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443, + // Block 0x55, offset 0x1540 + 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757, + 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773, + 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3, + 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf, + 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff, + 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f, + 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867, + 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af, + 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93, + 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3, + 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917, + // Block 0x56, offset 0x1580 + 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f, + 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983, + 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf, + 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3, + 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef, + 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23, + 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37, + 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63, + 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f, + 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692, + 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb, + 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f, + 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6, + 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9, + 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83, + 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3, + 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf, + 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7, + 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f, + 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b, + 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f, + // Block 0x58, offset 0x1600 + 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87, + 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb, + 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7, + 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663, + 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd, + 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7, + 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b, + 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f, + 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7, + 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700, + 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb, + // Block 0x59, offset 0x1640 + 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23, + 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53, + 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714, + 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b, + 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719, + 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728, + 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37, + 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57, + 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737, + 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741, + 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff, + 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637, + 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f, + 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093, + 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782, + 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3, + 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7, + 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133, + 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa, + 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4, + 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7, + 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7, + 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b, + 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd, + 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f, + 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f, + 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273, + 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677, + 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7, + 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb, + 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f, + // Block 0x5c, offset 0x1700 + 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5, + 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa, + 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b, + 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7, + 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665, + 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f, + 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477, + 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693, + 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb, + 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b, + 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b, + // Block 0x5d, offset 0x1740 + 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567, + 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7, + 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7, + 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef, + 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62, + 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d, + 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74, + 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a, + 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82, + // Block 0x5, offset 0x140 + 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89, + 0x14d: 0x8a, + 0x15c: 0x8b, 0x15f: 0x8c, + 0x162: 0x8d, 0x164: 0x8e, + 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94, + 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + 0x374: 0xcb, + 0x37d: 0xcc, + // Block 0xe, offset 0x380 + 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0, + 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4, + 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9, + 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc, + 0x3a0: 0xdd, 0x3a7: 0xde, + 0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1, + 0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xe4, 0x3ec: 0xe5, + // Block 0x10, offset 0x400 + 0x432: 0xe6, + // Block 0x11, offset 0x440 + 0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9, + 0x449: 0xea, + 0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2, + 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d, + // Block 0x12, offset 0x480 + 0x480: 0xf9, 0x484: 0xe5, + 0x48b: 0xfa, + 0x4a3: 0xfb, 0x4a5: 0xfc, + 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe, + 0x4c8: 0x52, 0x4c9: 0xff, + // Block 0x14, offset 0x500 + 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a, + 0x528: 0x5b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 164 entries, 328 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363} + +// nfkcSparseValues: 877 entries, 3508 bytes +var nfkcSparseValues = [877]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x427b, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4267, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425d, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4294, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221f, lo: 0xbc, hi: 0xbc}, + {value: 0x2213, lo: 0xbd, hi: 0xbd}, + {value: 0x22b5, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e5, lo: 0xa0, hi: 0xa1}, + {value: 0x4717, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x4271, lo: 0x98, hi: 0x98}, + {value: 0x4276, lo: 0x99, hi: 0x9a}, + {value: 0x4299, lo: 0x9b, hi: 0x9b}, + {value: 0x4262, lo: 0x9c, hi: 0x9c}, + {value: 0x4285, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a8, lo: 0x90, hi: 0x90}, + {value: 0x37b4, lo: 0x91, hi: 0x91}, + {value: 0x37a2, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x381a, lo: 0x97, hi: 0x97}, + {value: 0x37e4, lo: 0x9c, hi: 0x9c}, + {value: 0x37cc, lo: 0x9d, hi: 0x9d}, + {value: 0x37f6, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x3820, lo: 0xb6, hi: 0xb6}, + {value: 0x3826, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3844, lo: 0xa2, hi: 0xa2}, + {value: 0x384a, lo: 0xa3, hi: 0xa3}, + {value: 0x3856, lo: 0xa4, hi: 0xa4}, + {value: 0x3850, lo: 0xa5, hi: 0xa5}, + {value: 0x385c, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386e, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x3862, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3868, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x70 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x75 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x77 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3edb, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee3, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3eeb, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0xf, offset 0x7f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451f, lo: 0x98, hi: 0x9f}, + // Block 0x10, offset 0x86 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x11, offset 0x89 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ca1, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455f, lo: 0x9c, hi: 0x9d}, + {value: 0x456f, lo: 0x9f, hi: 0x9f}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x91 + {value: 0x0000, lo: 0x03}, + {value: 0x4597, lo: 0xb3, hi: 0xb3}, + {value: 0x459f, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x13, offset 0x95 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4577, lo: 0x99, hi: 0x9b}, + {value: 0x458f, lo: 0x9e, hi: 0x9e}, + // Block 0x14, offset 0x99 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x16, offset 0x9d + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb9, lo: 0x88, hi: 0x88}, + {value: 0x2cb1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cc1, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a7, lo: 0x9c, hi: 0x9c}, + {value: 0x45af, lo: 0x9d, hi: 0x9d}, + // Block 0x17, offset 0xa6 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc9, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x18, offset 0xaa + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cd1, lo: 0x8a, hi: 0x8a}, + {value: 0x2ce1, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd9, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x19, offset 0xb1 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef3, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1a, offset 0xb6 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0xb9 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce9, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cf1, lo: 0x87, hi: 0x87}, + {value: 0x2cf9, lo: 0x88, hi: 0x88}, + {value: 0x2f53, lo: 0x8a, hi: 0x8a}, + {value: 0x2ddb, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xc3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1d, offset 0xc6 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2d01, lo: 0x8a, hi: 0x8a}, + {value: 0x2d11, lo: 0x8b, hi: 0x8b}, + {value: 0x2d09, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1e, offset 0xcd + {value: 0x6be7, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3efb, lo: 0x9a, hi: 0x9a}, + {value: 0x2f5b, lo: 0x9c, hi: 0x9c}, + {value: 0x2de6, lo: 0x9d, hi: 0x9d}, + {value: 0x2d19, lo: 0x9e, hi: 0x9f}, + // Block 0x1f, offset 0xd5 + {value: 0x0000, lo: 0x03}, + {value: 0x2624, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x20, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x21, offset 0xdb + {value: 0x0000, lo: 0x03}, + {value: 0x2639, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xdf + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x262b, lo: 0x9c, hi: 0x9c}, + {value: 0x2632, lo: 0x9d, hi: 0x9d}, + // Block 0x23, offset 0xe3 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x24, offset 0xe9 + {value: 0x0000, lo: 0x10}, + {value: 0x2647, lo: 0x83, hi: 0x83}, + {value: 0x264e, lo: 0x8d, hi: 0x8d}, + {value: 0x2655, lo: 0x92, hi: 0x92}, + {value: 0x265c, lo: 0x97, hi: 0x97}, + {value: 0x2663, lo: 0x9c, hi: 0x9c}, + {value: 0x2640, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a87, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a90, lo: 0xb5, hi: 0xb5}, + {value: 0x45b7, lo: 0xb6, hi: 0xb6}, + {value: 0x45f7, lo: 0xb7, hi: 0xb7}, + {value: 0x45bf, lo: 0xb8, hi: 0xb8}, + {value: 0x4602, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x25, offset 0xfa + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a99, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x2671, lo: 0x93, hi: 0x93}, + {value: 0x2678, lo: 0x9d, hi: 0x9d}, + {value: 0x267f, lo: 0xa2, hi: 0xa2}, + {value: 0x2686, lo: 0xa7, hi: 0xa7}, + {value: 0x268d, lo: 0xac, hi: 0xac}, + {value: 0x266a, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x27, offset 0x108 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d21, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x28, offset 0x10e + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x29, offset 0x110 + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2a, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2b, offset 0x114 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2c, offset 0x116 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2d, offset 0x118 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2e, offset 0x11a + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x2f, offset 0x11c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x30, offset 0x11f + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x31, offset 0x122 + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x32, offset 0x124 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x33, offset 0x127 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x34, offset 0x12a + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x12e + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x36, offset 0x133 + {value: 0x0000, lo: 0x08}, + {value: 0x2d69, lo: 0x80, hi: 0x80}, + {value: 0x2d71, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d79, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x37, offset 0x13c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x38, offset 0x13e + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x39, offset 0x141 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3a, offset 0x143 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3b, offset 0x14e + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x159 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429e, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5f, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2694, lo: 0xb3, hi: 0xb3}, + {value: 0x2801, lo: 0xb4, hi: 0xb4}, + {value: 0x269b, lo: 0xb6, hi: 0xb6}, + {value: 0x280b, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x426c, lo: 0xbe, hi: 0xbe}, + // Block 0x3d, offset 0x167 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x2991, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x175 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x199c, lo: 0xa8, hi: 0xa8}, + // Block 0x3f, offset 0x185 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x40, offset 0x193 + {value: 0x0007, lo: 0x06}, + {value: 0x2183, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bbc, lo: 0x9a, hi: 0x9b}, + {value: 0x3bca, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x19a + {value: 0x000e, lo: 0x05}, + {value: 0x3bd1, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd8, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x1a0 + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be6, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bed, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf4, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bfb, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3c02, lo: 0xa6, hi: 0xa6}, + {value: 0x26a2, lo: 0xac, hi: 0xad}, + {value: 0x26a9, lo: 0xaf, hi: 0xaf}, + {value: 0x281f, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x1af + {value: 0x0007, lo: 0x03}, + {value: 0x3c6b, lo: 0xa0, hi: 0xa1}, + {value: 0x3c95, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbf, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x1b3 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x1b5 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x46, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x299e, lo: 0x8c, hi: 0x8c}, + // Block 0x47, offset 0x1bb + {value: 0x0266, lo: 0x02}, + {value: 0x1b8f, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x48, offset 0x1be + {value: 0x0000, lo: 0x01}, + {value: 0x44e0, lo: 0x9c, hi: 0x9c}, + // Block 0x49, offset 0x1c0 + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4a, offset 0x1c3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4b, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4c, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4d, offset 0x1ca + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x4e, offset 0x1cc + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x4f, offset 0x1ce + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x50, offset 0x1da + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x51, offset 0x1e4 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3e, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a44, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a50, lo: 0xba, hi: 0xbf}, + // Block 0x52, offset 0x1ee + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x53, offset 0x1f1 + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x54, offset 0x1f5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x55, offset 0x1f7 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x56, offset 0x1f9 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x57, offset 0x1fb + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x58, offset 0x1fd + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x59, offset 0x200 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5a, offset 0x202 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5b, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5c, offset 0x206 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5d, offset 0x208 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x20e + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5f, offset 0x211 + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x60, offset 0x215 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x61, offset 0x217 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x62, offset 0x21e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x63, offset 0x224 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x64, offset 0x22a + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x65, offset 0x232 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x66, offset 0x238 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x67, offset 0x23e + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x68, offset 0x244 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x69, offset 0x248 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6a, offset 0x24a + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6b, offset 0x24c + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6c, offset 0x24e + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6d, offset 0x250 + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x256 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x6f, offset 0x259 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa4, hi: 0xa7}, + // Block 0x70, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x8132, lo: 0x88, hi: 0x8a}, + {value: 0x812d, lo: 0x8b, hi: 0x8b}, + {value: 0x8132, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x8d, hi: 0x90}, + // Block 0x71, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x264 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x423b, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4245, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424f, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x26c + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d81, lo: 0xae, hi: 0xae}, + {value: 0x2d8b, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x279 + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x27b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x78, offset 0x27e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d95, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9f, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x79, offset 0x286 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + {value: 0x8132, lo: 0x9e, hi: 0x9e}, + // Block 0x7a, offset 0x28a + {value: 0x6b57, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db3, lo: 0xbb, hi: 0xbb}, + {value: 0x2da9, lo: 0xbc, hi: 0xbd}, + {value: 0x2dbd, lo: 0xbe, hi: 0xbe}, + // Block 0x7b, offset 0x291 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7c, offset 0x294 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc7, lo: 0xba, hi: 0xba}, + {value: 0x2dd1, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7d, offset 0x29a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7e, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7f, offset 0x29e + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x80, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x81, offset 0x2a3 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb9, hi: 0xb9}, + {value: 0x8102, lo: 0xba, hi: 0xba}, + // Block 0x82, offset 0x2a6 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + // Block 0x83, offset 0x2a8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x84, offset 0x2aa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x87, hi: 0x87}, + // Block 0x85, offset 0x2ac + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x99, hi: 0x99}, + // Block 0x86, offset 0x2ae + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0x82, hi: 0x82}, + {value: 0x8104, lo: 0x84, hi: 0x85}, + // Block 0x87, offset 0x2b1 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x97, hi: 0x97}, + // Block 0x88, offset 0x2b3 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x89, offset 0x2b5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x8a, offset 0x2b7 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x8b, offset 0x2b9 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cf, lo: 0x9e, hi: 0x9e}, + {value: 0x45d9, lo: 0x9f, hi: 0x9f}, + {value: 0x460d, lo: 0xa0, hi: 0xa0}, + {value: 0x461b, lo: 0xa1, hi: 0xa1}, + {value: 0x4629, lo: 0xa2, hi: 0xa2}, + {value: 0x4637, lo: 0xa3, hi: 0xa3}, + {value: 0x4645, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x8c, offset 0x2c6 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e3, lo: 0xbb, hi: 0xbb}, + {value: 0x45ed, lo: 0xbc, hi: 0xbc}, + {value: 0x4653, lo: 0xbd, hi: 0xbd}, + {value: 0x466f, lo: 0xbe, hi: 0xbe}, + {value: 0x4661, lo: 0xbf, hi: 0xbf}, + // Block 0x8d, offset 0x2d0 + {value: 0x0000, lo: 0x01}, + {value: 0x467d, lo: 0x80, hi: 0x80}, + // Block 0x8e, offset 0x2d2 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8f, offset 0x2d4 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x90, offset 0x2d8 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x91, offset 0x2dd + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x92, offset 0x2e9 + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x93, offset 0x2ee + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x94, offset 0x2f7 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x95, offset 0x2fd + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x96, offset 0x302 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x97, offset 0x306 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x98, offset 0x30b + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x99, offset 0x30f + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x9a, offset 0x31f + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x9b, offset 0x32d + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x9c, offset 0x33b + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x9d, offset 0x349 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x9e, offset 0x34f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xac, hi: 0xaf}, + // Block 0x9f, offset 0x351 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0xa0, offset 0x353 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0xa1, offset 0x356 + {value: 0x0002, lo: 0x0a}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1984, lo: 0x8b, hi: 0x8b}, + {value: 0x199f, lo: 0x8c, hi: 0x8c}, + {value: 0x19a5, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc3, lo: 0x8e, hi: 0x8e}, + {value: 0x19b1, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + {value: 0x1981, lo: 0xac, hi: 0xac}, + // Block 0xa2, offset 0x361 + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0xa3, offset 0x363 + {value: 0x0028, lo: 0x09}, + {value: 0x2865, lo: 0x80, hi: 0x80}, + {value: 0x2829, lo: 0x81, hi: 0x81}, + {value: 0x2833, lo: 0x82, hi: 0x82}, + {value: 0x2847, lo: 0x83, hi: 0x84}, + {value: 0x2851, lo: 0x85, hi: 0x86}, + {value: 0x283d, lo: 0x87, hi: 0x87}, + {value: 0x285b, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 55KB (55977 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go new file mode 100644 index 0000000..9429069 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -0,0 +1,7637 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build !go1.10 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "9.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x49AE + firstCCCZeroExcept = 0x4A78 + firstStarterWithNLead = 0x4A9F + lastDecomp = 0x4AA1 + maxDecomp = 0x8000 +) + +// decomps: 19105 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, + 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, + 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, + 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, + // Bytes 4300 - 433f + 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, + 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, + // Bytes 4340 - 437f + 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, + 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, + 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, + // Bytes 4380 - 43bf + 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, + 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, + // Bytes 43c0 - 43ff + 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, + 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, + 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, + 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, + 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, + 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, + 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, + 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, + 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, + // Bytes 4440 - 447f + 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, + 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, + 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, + 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, + 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, + 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, + // Bytes 4480 - 44bf + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, + 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, + // Bytes 44c0 - 44ff + 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, + 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, + 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, + 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, + // Bytes 4500 - 453f + 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, + 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, + // Bytes 4540 - 457f + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, + 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, + 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, + // Bytes 4580 - 45bf + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, + 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, + 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, + // Bytes 45c0 - 45ff + 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, + 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, + // Bytes 4600 - 463f + 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, + 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4640 - 467f + 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + // Bytes 4680 - 46bf + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, + 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, + 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, + 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, + 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, + 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, + 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, + 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, + // Bytes 46c0 - 46ff + 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, + 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, + 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, + 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, + 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, + 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, + 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, + 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, + // Bytes 4700 - 473f + 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, + 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, + 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, + 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, + 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, + 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, + 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, + 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, + // Bytes 4740 - 477f + 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, + 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, + 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, + 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, + 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, + 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, + 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, + 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, + // Bytes 4780 - 47bf + 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, + 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, + 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, + 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, + 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, + 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + // Bytes 47c0 - 47ff + 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 4800 - 483f + 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, + 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, + // Bytes 4840 - 487f + 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + // Bytes 4880 - 48bf + 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, + 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + // Bytes 48c0 - 48ff + 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + // Bytes 4900 - 493f + 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + // Bytes 4940 - 497f + 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, + 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + // Bytes 4980 - 49bf + 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, + 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, + 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, + // Bytes 49c0 - 49ff + 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, + // Bytes 4a00 - 4a3f + 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, + 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, + 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, + 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, + // Bytes 4a40 - 4a7f + 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, + 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, + 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, + 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, + 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, + 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, + // Bytes 4a80 - 4abf + 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, + 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, + 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 44: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 44 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 46 blocks, 2944 entries, 5888 bytes +// The third block is the zero block. +var nfcValues = [2944]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xa000, + 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, + 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, + 0x3d2: 0x2d4e, + 0x3f4: 0x8102, 0x3f5: 0x9900, + 0x3fa: 0xa000, 0x3fb: 0x2d56, + 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, + // Block 0x10, offset 0x400 + 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2, + 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0, + 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df, + 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85, + 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93, + 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c, + 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370, + 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a, + 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de, + 0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7, + 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc, + // Block 0x11, offset 0x440 + 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a, + 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e, + 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9, + 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465, + 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26, + 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791, + 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b, + 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4, + 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f, + 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49, + 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519, + // Block 0x12, offset 0x480 + 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532, + 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541, + 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582, + 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6, + 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1, + 0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f, + 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15, + 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23, + 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a, + 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c, + 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70, + 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1, + 0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf, + 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6, + 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5, + 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11, + 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73, + 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a, + 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578, + 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a, + // Block 0x14, offset 0x500 + 0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e, + 0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6, + 0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c, + 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0, + 0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00, + 0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966, + 0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8, + 0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6, + 0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38, + 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30, + 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40, + // Block 0x15, offset 0x540 + 0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60, + 0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58, + 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a, + 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8, + 0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70, + 0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996, + 0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2, + 0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916, + 0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a, + 0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c, + 0x57c: 0x4870, 0x57d: 0x4342, + // Block 0x16, offset 0x580 + 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac, + 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee, + 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0, + 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2, + 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134, + 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a, + 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88, + 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a, + 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98, + 0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee, + 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0, + 0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa, + 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af, + 0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10, + 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4, + 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec, + 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b, + 0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081, + 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8, + 0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318, + 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100, + // Block 0x18, offset 0x600 + 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000, + 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b, + 0x60d: 0xa000, + 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29, + 0x624: 0xa000, 0x625: 0xa000, + 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a, + 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45, + 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000, + 0x63c: 0xa000, 0x63d: 0xa000, + // Block 0x19, offset 0x640 + 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d, + 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b, + 0x651: 0xa000, + 0x652: 0xa000, + 0x662: 0xa000, + 0x668: 0xa000, 0x669: 0xa000, + 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5, + 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, + // Block 0x1a, offset 0x680 + 0x686: 0xa000, 0x68b: 0xa000, + 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000, + 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000, + 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000, + 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60, + 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78, + 0x6af: 0xa000, + 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000, + 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000, + 0x6bc: 0x3fc0, 0x6bd: 0x3fc8, + // Block 0x1b, offset 0x6c0 + 0x6d4: 0x3f00, + 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, + 0x6de: 0x3fd0, + 0x6e6: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000, + 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000, + 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000, + 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000, + // Block 0x1c, offset 0x700 + 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040, + 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050, + 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060, + 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080, + 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0, + 0x72f: 0xa000, + 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8, + 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0, + 0x73d: 0xa000, 0x73e: 0x40c8, + // Block 0x1d, offset 0x740 + 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, + 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943, + 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3, + 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43, + 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, + 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283, + 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f, + 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853, + 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b, + 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b, + 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b, + // Block 0x1e, offset 0x780 + 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, + 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f, + 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7, + 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, + 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357, + 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873, + 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3, + 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b, + 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57, + 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb, + 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, + 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3, + 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83, + 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193, + 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b, + 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b, + 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f, + 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b, + 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753, + 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777, + 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73, + // Block 0x20, offset 0x800 + 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3, + 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, + 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af, + 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, + 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817, + 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3, + 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457, + 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, + 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27, + 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f, + 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b, + // Block 0x21, offset 0x840 + 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03, + 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27, + 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af, + 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3, + 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb, + 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, + 0x865: 0x1407, 0x866: 0x1433, + 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7, + 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897, + 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93, + 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3, + // Block 0x22, offset 0x880 + 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b, + 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f, + 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f, + 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f, + 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff, + 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f, + 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f, + 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3, + 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7, + 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963, + 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b, + 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb, + 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf, + 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f, + 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013, + 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f, + 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b, + 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b, + 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb, + 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343, + 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f, + // Block 0x24, offset 0x900 + 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b, + 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b, + 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2, + 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809, + 0x918: 0x1617, 0x919: 0x1627, + // Block 0x25, offset 0x940 + 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757, + 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, + 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, + 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf, + 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff, + 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f, + 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867, + 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af, + 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93, + 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3, + 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917, + // Block 0x26, offset 0x980 + 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f, + 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983, + 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf, + 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3, + 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, + 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, + 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, + 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, + 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, + 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692, + 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb, + 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f, + 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6, + 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9, + 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, + 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, + 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf, + 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7, + 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f, + 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, + 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f, + // Block 0x28, offset 0xa00 + 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87, + 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb, + 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7, + 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663, + 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd, + 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7, + 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, + 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, + 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, + 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700, + 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb, + // Block 0x29, offset 0xa40 + 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23, + 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, + 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714, + 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, + 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719, + 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728, + 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37, + 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57, + 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737, + 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741, + 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff, + 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, + 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, + 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093, + 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782, + 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3, + 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, + 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, + 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa, + 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4, + 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197, + // Block 0x2b, offset 0xac0 + 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, + 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7, + 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b, + 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd, + 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f, + 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f, + 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, + 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677, + 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7, + 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb, + 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f, + // Block 0x2c, offset 0xb00 + 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5, + 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa, + 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, + 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, + 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665, + 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f, + 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477, + 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693, + 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb, + 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b, + 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567, + 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7, + 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7, + 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef, + 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30, + 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33, + 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f, + 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46, + 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c, + 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54, + // Block 0x5, offset 0x140 + 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a, + 0x14d: 0x5b, + 0x15c: 0x5c, 0x15f: 0x5d, + 0x162: 0x5e, 0x164: 0x5f, + 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65, + 0x170: 0x66, 0x173: 0x67, 0x177: 0x68, + 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e, + 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + // Block 0xe, offset 0x380 + 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, + 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7, + 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, + 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, + 0x3b0: 0x73, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xaf, 0x3ec: 0xb0, + // Block 0x10, offset 0x400 + 0x432: 0xb1, + // Block 0x11, offset 0x440 + 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4, + 0x449: 0xb5, + // Block 0x12, offset 0x480 + 0x480: 0xb6, + 0x4a3: 0xb7, 0x4a5: 0xb8, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xb9, + // Block 0x14, offset 0x500 + 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a, + 0x528: 0x2b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 142 entries, 284 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae} + +// nfcSparseValues: 688 entries, 2752 bytes +var nfcSparseValues = [688]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4840, lo: 0x8a, hi: 0x8a}, + {value: 0x485e, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x4876, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xd, offset 0x62 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x67 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x69 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x7a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x82 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x89 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x8c + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x14, offset 0x93 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x97 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x9d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x9f + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0xa8 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xac + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xb3 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xb8 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xbb + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xc5 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xc7 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xce + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xd6 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xdb + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x24, offset 0xdd + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xdf + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xe4 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xf5 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0x103 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x109 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x10b + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x115 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x118 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x11d + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x120 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x123 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x127 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x12c + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x135 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x137 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x13a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x13c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x147 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x157 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x15b + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3f, offset 0x169 + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x40, offset 0x16c + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x172 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x178 + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x183 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x187 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x189 + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x46, offset 0x18b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x47, offset 0x18d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x48, offset 0x18f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x49, offset 0x191 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x4a, offset 0x197 + {value: 0x0000, lo: 0x03}, + {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, + {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, + {value: 0x4a9f, lo: 0xba, hi: 0xbf}, + // Block 0x4b, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, + // Block 0x4c, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4d, offset 0x19f + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4e, offset 0x1a7 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4f, offset 0x1ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x50, offset 0x1ae + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x51, offset 0x1b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x52, offset 0x1b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x53, offset 0x1b4 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x54, offset 0x1b7 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x55, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x56, offset 0x1bb + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x57, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x58, offset 0x1bf + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x59, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5a, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x5b, offset 0x1ca + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5c, offset 0x1d1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5d, offset 0x1d7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5e, offset 0x1dd + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5f, offset 0x1e5 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x60, offset 0x1eb + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x61, offset 0x1f1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x62, offset 0x1f7 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x63, offset 0x1fb + {value: 0x0006, lo: 0x0d}, + {value: 0x4390, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4402, lo: 0x9f, hi: 0x9f}, + {value: 0x43f0, lo: 0xaa, hi: 0xab}, + {value: 0x44f4, lo: 0xac, hi: 0xac}, + {value: 0x44fc, lo: 0xad, hi: 0xad}, + {value: 0x4348, lo: 0xae, hi: 0xb1}, + {value: 0x4366, lo: 0xb2, hi: 0xb4}, + {value: 0x437e, lo: 0xb5, hi: 0xb6}, + {value: 0x438a, lo: 0xb8, hi: 0xb8}, + {value: 0x4396, lo: 0xb9, hi: 0xbb}, + {value: 0x43ae, lo: 0xbc, hi: 0xbc}, + {value: 0x43b4, lo: 0xbe, hi: 0xbe}, + // Block 0x64, offset 0x209 + {value: 0x0006, lo: 0x08}, + {value: 0x43ba, lo: 0x80, hi: 0x81}, + {value: 0x43c6, lo: 0x83, hi: 0x84}, + {value: 0x43d8, lo: 0x86, hi: 0x89}, + {value: 0x43fc, lo: 0x8a, hi: 0x8a}, + {value: 0x4378, lo: 0x8b, hi: 0x8b}, + {value: 0x4360, lo: 0x8c, hi: 0x8c}, + {value: 0x43a8, lo: 0x8d, hi: 0x8d}, + {value: 0x43d2, lo: 0x8e, hi: 0x8e}, + // Block 0x65, offset 0x212 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x66, offset 0x215 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x67, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x68, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x69, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x6a, offset 0x21f + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x6b, offset 0x223 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6c, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6d, offset 0x22a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6e, offset 0x22c + {value: 0x0000, lo: 0x04}, + {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, + {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, + {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, + {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, + // Block 0x6f, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0x4a9f, lo: 0x82, hi: 0x87}, + {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, + {value: 0x4a9f, lo: 0x92, hi: 0x97}, + {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x70, offset 0x237 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x71, offset 0x239 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x72, offset 0x23b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x73, offset 0x23d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x75, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x249 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x251 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x258 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x25b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x25e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x260 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7c, offset 0x268 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x7d, offset 0x26b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7e, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7f, offset 0x275 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x80, offset 0x27b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x81, offset 0x27d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x82, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x83, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x84, offset 0x284 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x85, offset 0x286 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x86, offset 0x288 + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x295 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x88, offset 0x29f + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x89, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8a, offset 0x2a3 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x8b, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x8c, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x8d, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 90: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 90 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 92 blocks, 5888 entries, 11776 bytes +// The third block is the zero block. +var nfkcValues = [5888]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, + 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, + 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, + 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, + 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x447b, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, + 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, + 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, + 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, + 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, + 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, + 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, + 0x46a: 0x01fd, + 0x478: 0x020c, + // Block 0x12, offset 0x480 + 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, + 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, + 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, + 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, + 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, + 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, + 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2, + 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0, + 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df, + 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85, + 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93, + 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c, + 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370, + 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a, + 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de, + 0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7, + 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc, + // Block 0x14, offset 0x500 + 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a, + 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e, + 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9, + 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465, + 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26, + 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791, + 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b, + 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4, + 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f, + 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49, + 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519, + // Block 0x15, offset 0x540 + 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532, + 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541, + 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582, + 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6, + 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7, + 0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f, + 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15, + 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23, + 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a, + 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c, + 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69, + // Block 0x16, offset 0x580 + 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70, + 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1, + 0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf, + 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6, + 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5, + 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11, + 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73, + 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a, + 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578, + 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e, + 0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6, + 0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c, + 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0, + 0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00, + 0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966, + 0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8, + 0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6, + 0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38, + 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30, + 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40, + // Block 0x18, offset 0x600 + 0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60, + 0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58, + 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a, + 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8, + 0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70, + 0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996, + 0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2, + 0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916, + 0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a, + 0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c, + 0x63c: 0x4870, 0x63d: 0x4342, + // Block 0x19, offset 0x640 + 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac, + 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee, + 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0, + 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2, + 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134, + 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a, + 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88, + 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a, + 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98, + 0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee, + 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287, + // Block 0x1a, offset 0x680 + 0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0, + 0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa, + 0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af, + 0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10, + 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e, + 0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec, + 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b, + 0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081, + 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8, + 0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318, + 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8, + 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051, + 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, + 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d, + 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, + 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8, + 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, + 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b, + 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215, + 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98, + 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0, + // Block 0x1c, offset 0x700 + 0x700: 0x0463, 0x705: 0x0049, + 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095, + 0x710: 0x222e, 0x711: 0x223a, + 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8, + 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0, + 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963, + 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071, + 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, + 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62, + 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50, + 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, + // Block 0x1d, offset 0x740 + 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000, + 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b, + 0x74d: 0xa000, + 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29, + 0x764: 0xa000, 0x765: 0xa000, + 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a, + 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45, + 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000, + 0x77c: 0xa000, 0x77d: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d, + 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b, + 0x791: 0xa000, + 0x792: 0xa000, + 0x7a2: 0xa000, + 0x7a8: 0xa000, 0x7a9: 0xa000, + 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5, + 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000, + // Block 0x1f, offset 0x7c0 + 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029, + 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882, + 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894, + 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c, + 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84, + 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a, + // Block 0x20, offset 0x800 + 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8, + 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb, + 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60, + 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78, + 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8, + 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10, + 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28, + 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40, + 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58, + 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d, + 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055, + // Block 0x21, offset 0x840 + 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713, + 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab, + 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803, + 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887, + 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db, + 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb, + 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b, + 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7, + 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33, + 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63, + 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f, + // Block 0x22, offset 0x880 + 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb, + 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b, + 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb, + 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3, + 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f, + 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83, + 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7, + 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f, + 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf, + 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f, + 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3, + 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb, + 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b, + 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b, + 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf, + 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f, + 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f, + 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503, + 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f, + 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f, + 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593, + // Block 0x24, offset 0x900 + 0x906: 0xa000, 0x90b: 0xa000, + 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000, + 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000, + 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000, + 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60, + 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78, + 0x92f: 0xa000, + 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000, + 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000, + 0x93c: 0x3fc0, 0x93d: 0x3fc8, + // Block 0x25, offset 0x940 + 0x954: 0x3f00, + 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000, + 0x95e: 0x3fd0, 0x95f: 0x26b4, + 0x966: 0xa000, + 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000, + 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000, + 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000, + 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000, + // Block 0x26, offset 0x980 + 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040, + 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050, + 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060, + 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080, + 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0, + 0x9af: 0xa000, + 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8, + 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0, + 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337, + 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f, + 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9, + 0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed, + 0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11, + 0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35, + 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef, + 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403, + 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383, + 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b, + 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab, + // Block 0x28, offset 0xa00 + 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb, + 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7, + 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3, + 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7, + 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff, + 0xa1e: 0x098f, 0xa1f: 0x072f, + // Block 0x29, offset 0xa40 + 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072, + 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096, + 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741, + 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780, + 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac, + 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108, + 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0, + 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e, + 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144, + 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114, + 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6, + // Block 0x2a, offset 0xa80 + 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03, + 0xa86: 0x0ca7, 0xa87: 0x10c7, + 0xa90: 0x1bc4, 0xa91: 0x18a9, + 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb, + 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3, + 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327, + 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b, + 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20, + 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50, + 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88, + 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58, + // Block 0x2b, offset 0xac0 + 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af, + 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f, + 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b, + 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f, + 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f, + 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b, + 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f, + 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b, + 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee, + 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900, + 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912, + // Block 0x2c, offset 0xb00 + 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11, + 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0, + 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3, + 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7, + 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f, + 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b, + 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543, + 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b, + 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f, + 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597, + 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3, + // Block 0x2d, offset 0xb40 + 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a, + 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2, + 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6, + 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c, + 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6, + 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da, + 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8, + 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51, + 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920, + 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06, + 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de, + // Block 0x2e, offset 0xb80 + 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c, + 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90, + 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6, + 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984, + 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07, + 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4, + 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2, + 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a, + 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47, + 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701, + 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969, + 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35, + 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c, + 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9, + 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0, + 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40, + 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996, + 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad, + 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38, + 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b, + 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984, + // Block 0x30, offset 0xc00 + 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd, + 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e, + 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e, + 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990, + 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4, + 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee, + 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186, + 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0, + 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258, + 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e, + 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10, + // Block 0x31, offset 0xc40 + 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, + 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943, + 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3, + 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43, + 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, + 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283, + 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f, + 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853, + 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b, + 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b, + 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b, + // Block 0x32, offset 0xc80 + 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, + 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, + 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7, + 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, + 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357, + 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873, + 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3, + 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b, + 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57, + 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb, + 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, + 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3, + 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83, + 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193, + 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b, + 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b, + 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f, + 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b, + 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753, + 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777, + 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73, + // Block 0x34, offset 0xd00 + 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3, + 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, + 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af, + 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, + 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817, + 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3, + 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457, + 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, + 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27, + 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f, + 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b, + // Block 0x35, offset 0xd40 + 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03, + 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27, + 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af, + 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3, + 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb, + 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, + 0xd65: 0x1407, 0xd66: 0x1433, + 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7, + 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897, + 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93, + 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3, + // Block 0x36, offset 0xd80 + 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b, + 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f, + 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f, + 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f, + 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff, + 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f, + 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f, + 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3, + 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7, + 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963, + 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b, + 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb, + 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf, + 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f, + 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013, + 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f, + 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b, + 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b, + 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb, + 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343, + 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f, + // Block 0x38, offset 0xe00 + 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b, + 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b, + 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2, + 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809, + 0xe18: 0x1617, 0xe19: 0x1627, + // Block 0x39, offset 0xe40 + 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f, + 0xe46: 0x1a5f, + 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70, + 0xe5d: 0x4390, + 0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, + 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, + 0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e, + 0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e, + 0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2, + 0xe7c: 0x43ae, 0xe7e: 0x43b4, + // Block 0x3a, offset 0xe80 + 0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc, + 0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378, + 0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299, + 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5, + 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab, + 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8, + 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c, + 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2, + 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1, + 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4, + 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7, + // Block 0x3b, offset 0xec0 + 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd, + 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9, + 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5, + 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1, + 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de, + 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7, + 0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, + 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, + 0xef0: 0x4468, 0xef1: 0x4468, + // Block 0x3c, offset 0xf00 + 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6, + 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f, + 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc, + 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d, + 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9, + 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c, + 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0, + 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, + // Block 0x3d, offset 0xf40 + 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89, + 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb, + 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded, + 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29, + 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b, + 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9, + 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00, + 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32, + 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50, + 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e, + 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87, + // Block 0x3e, offset 0xf80 + 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf, + 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd, + 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff, + 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022, + 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c, + 0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6, + 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7, + 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6, + 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8, + 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10, + 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96, + 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1, + 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027, + 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1, + 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e, + 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5, + 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29, + 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60, + 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9, + 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05, + 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64, + 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91, + 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe, + 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff, + 0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031, + 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4, + 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92, + 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0, + 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1, + 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74, + 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33, + // Block 0x41, offset 0x1040 + 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba, + 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88, + 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1, + 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74, + 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f, + 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd, + 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d, + 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88, + 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b, + 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb, + 0x107c: 0x4408, 0x107d: 0x4408, + // Block 0x42, offset 0x1080 + 0x1090: 0x2311, 0x1091: 0x2326, + 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357, + 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4, + 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5, + 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc, + 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430, + 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c, + 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f, + 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df, + 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e, + 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c, + 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548, + 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c, + 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365, + 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406, + 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e, + 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca, + 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7, + 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f, + // Block 0x44, offset 0x1100 + 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b, + 0x1106: 0x23c0, 0x1107: 0x2556, + 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da, + 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc, + 0x113c: 0x27d1, + // Block 0x45, offset 0x1140 + 0x1150: 0x0019, 0x1151: 0x0483, + 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, + 0x1158: 0x04c3, 0x1159: 0x1b5c, + 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132, + 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d, + 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132, + 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011, + 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab, + 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b, + // Block 0x46, offset 0x1180 + 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7, + 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269, + 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483, + 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003, + 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7, + 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b, + 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009, + 0x11aa: 0x000b, 0x11ab: 0x0041, + 0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4, + 0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e, + 0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456, + 0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462, + 0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c, + 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242, + 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248, + 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b, + 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251, + 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a, + 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260, + 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263, + 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266, + // Block 0x48, offset 0x1200 + 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c, + 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f, + 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275, + 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278, + 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e, + 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281, + 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287, + 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d, + 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00, + 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82, + 0x123c: 0x1f82, + // Block 0x49, offset 0x1240 + 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b, + 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097, + 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3, + 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af, + 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb, + 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f, + 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7, + 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f, + 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb, + 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503, + 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f, + 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547, + 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f, + 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583, + 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7, + 0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b, + 0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, + 0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b, + 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337, + 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f, + 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b, + // Block 0x4b, offset 0x12c0 + 0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf, + 0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7, + 0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff, + 0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23, + 0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35, + 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264, + 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b, + 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d, + 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085, + 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091, + 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d, + 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9, + 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5, + 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176, + 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188, + 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a, + 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9, + 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5, + // Block 0x4d, offset 0x1340 + 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0, + 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209, + 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027, + 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033, + 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b, + 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023, + 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f, + 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027, + 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033, + 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b, + 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a, + 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e, + 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263, + 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e, + 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4, + 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248, + 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290, + 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f, + 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242, + 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272, + // Block 0x4f, offset 0x13c0 + 0x13c2: 0x0248, + 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e, + 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263, + 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e, + 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4, + 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, + 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290, + 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, + 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, + 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272, + 0x13fc: 0x0293, 0x13fe: 0x02cc, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, + 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251, + 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, + 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8, + 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927, + 0x1450: 0x1a8c, 0x1451: 0x1a90, + 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8, + 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0, + 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8, + 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0, + 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1, + 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d, + 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059, + 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061, + // Block 0x52, offset 0x1480 + 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503, + 0x1490: 0x0c0f, 0x1491: 0x0a47, + 0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff, + 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b, + 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b, + 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf, + 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b, + 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43, + 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757, + 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, + 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, + 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf, + 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff, + 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f, + 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867, + 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af, + 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93, + 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3, + 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917, + // Block 0x54, offset 0x1500 + 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f, + 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983, + 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf, + 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3, + 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, + 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23, + 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, + 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, + 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, + 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692, + 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7, + // Block 0x55, offset 0x1540 + 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb, + 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f, + 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6, + 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9, + 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, + 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, + 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf, + 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7, + 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f, + 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, + 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f, + // Block 0x56, offset 0x1580 + 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87, + 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb, + 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7, + 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663, + 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd, + 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7, + 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, + 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, + 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, + 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700, + 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23, + 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, + 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714, + 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, + 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719, + 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728, + 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37, + 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57, + 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737, + 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741, + 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b, + // Block 0x58, offset 0x1600 + 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff, + 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, + 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, + 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093, + 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782, + 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3, + 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, + 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, + 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa, + 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4, + 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197, + // Block 0x59, offset 0x1640 + 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, + 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7, + 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b, + 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd, + 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f, + 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f, + 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, + 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677, + 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7, + 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb, + 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f, + // Block 0x5a, offset 0x1680 + 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5, + 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa, + 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, + 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, + 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665, + 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f, + 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477, + 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693, + 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb, + 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b, + 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567, + 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7, + 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7, + 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef, + 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60, + 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c, + 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73, + 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79, + 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81, + // Block 0x5, offset 0x140 + 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88, + 0x14d: 0x89, + 0x15c: 0x8a, 0x15f: 0x8b, + 0x162: 0x8c, 0x164: 0x8d, + 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93, + 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97, + 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26, + 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32, + 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a, + 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42, + 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + // Block 0xe, offset 0x380 + 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, + 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1, + 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, + 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, + 0x3b0: 0xd7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xda, 0x3ec: 0xdb, + // Block 0x10, offset 0x400 + 0x432: 0xdc, + // Block 0x11, offset 0x440 + 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf, + 0x449: 0xe0, + 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8, + 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b, + // Block 0x12, offset 0x480 + 0x480: 0xef, + 0x4a3: 0xf0, 0x4a5: 0xf1, + 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3, + 0x4c8: 0x50, 0x4c9: 0xf4, + // Block 0x14, offset 0x500 + 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58, + 0x528: 0x59, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 155 entries, 310 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361} + +// nfkcSparseValues: 875 entries, 3500 bytes +var nfkcSparseValues = [875]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x46e2, lo: 0xa0, hi: 0xa1}, + {value: 0x4714, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xc, offset 0x6f + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x74 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x76 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x8f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x451c, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x96 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x99 + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x455c, lo: 0x9c, hi: 0x9d}, + {value: 0x456c, lo: 0x9f, hi: 0x9f}, + // Block 0x13, offset 0xa0 + {value: 0x0000, lo: 0x03}, + {value: 0x4594, lo: 0xb3, hi: 0xb3}, + {value: 0x459c, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0xa4 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x4574, lo: 0x99, hi: 0x9b}, + {value: 0x458c, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0xa8 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xaa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xac + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x45a4, lo: 0x9c, hi: 0x9c}, + {value: 0x45ac, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xb5 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xc0 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xc8 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xd2 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xd4 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xdb + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xe3 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xe7 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xe9 + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xec + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xf0 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xf6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a84, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, + {value: 0x45b4, lo: 0xb6, hi: 0xb6}, + {value: 0x45f4, lo: 0xb7, hi: 0xb7}, + {value: 0x45bc, lo: 0xb8, hi: 0xb8}, + {value: 0x45ff, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0x107 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a96, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x115 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x11d + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x11f + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x123 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x125 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x12c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x12f + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x131 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x134 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x137 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x13b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x140 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x149 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x14b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x14e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x150 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x15b + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x166 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x176 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3f, offset 0x184 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x40, offset 0x192 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x41, offset 0x1a2 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x42, offset 0x1b0 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x43, offset 0x1b7 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x44, offset 0x1bd + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x45, offset 0x1cc + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x46, offset 0x1d0 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x47, offset 0x1d2 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x48, offset 0x1d6 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x49, offset 0x1d8 + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x4a, offset 0x1db + {value: 0x0000, lo: 0x01}, + {value: 0x44dd, lo: 0x9c, hi: 0x9c}, + // Block 0x4b, offset 0x1dd + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4c, offset 0x1e0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4d, offset 0x1e2 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4e, offset 0x1e5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4f, offset 0x1e7 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x50, offset 0x1e9 + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x51, offset 0x1eb + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x52, offset 0x1f7 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x53, offset 0x201 + {value: 0x0006, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x4a41, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4a4d, lo: 0xba, hi: 0xbf}, + // Block 0x54, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x55, offset 0x20e + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x56, offset 0x212 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x57, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x58, offset 0x216 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x59, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x5a, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x5b, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5c, offset 0x21f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5d, offset 0x221 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5e, offset 0x223 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5f, offset 0x225 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x60, offset 0x22b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x61, offset 0x22e + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x62, offset 0x232 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x63, offset 0x234 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x64, offset 0x23b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x65, offset 0x241 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x66, offset 0x247 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x67, offset 0x24f + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x68, offset 0x255 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x69, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x6a, offset 0x261 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6b, offset 0x265 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6c, offset 0x267 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6d, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6e, offset 0x26b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6f, offset 0x26d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x70, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x71, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x279 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x281 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x288 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x28b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x28e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x290 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x78, offset 0x298 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x79, offset 0x29b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7a, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7b, offset 0x2a5 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7c, offset 0x2ab + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7d, offset 0x2ad + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7e, offset 0x2af + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x7f, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x80, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x81, offset 0x2b6 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x82, offset 0x2b8 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x83, offset 0x2ba + {value: 0x0000, lo: 0x0c}, + {value: 0x45cc, lo: 0x9e, hi: 0x9e}, + {value: 0x45d6, lo: 0x9f, hi: 0x9f}, + {value: 0x460a, lo: 0xa0, hi: 0xa0}, + {value: 0x4618, lo: 0xa1, hi: 0xa1}, + {value: 0x4626, lo: 0xa2, hi: 0xa2}, + {value: 0x4634, lo: 0xa3, hi: 0xa3}, + {value: 0x4642, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x84, offset 0x2c7 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x45e0, lo: 0xbb, hi: 0xbb}, + {value: 0x45ea, lo: 0xbc, hi: 0xbc}, + {value: 0x4650, lo: 0xbd, hi: 0xbd}, + {value: 0x466c, lo: 0xbe, hi: 0xbe}, + {value: 0x465e, lo: 0xbf, hi: 0xbf}, + // Block 0x85, offset 0x2d1 + {value: 0x0000, lo: 0x01}, + {value: 0x467a, lo: 0x80, hi: 0x80}, + // Block 0x86, offset 0x2d3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x87, offset 0x2d5 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x88, offset 0x2d9 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x89, offset 0x2de + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x8a, offset 0x2ea + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x8b, offset 0x2ef + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x8c, offset 0x2f8 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x8d, offset 0x2fe + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x8e, offset 0x303 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x8f, offset 0x307 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x90, offset 0x30c + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x91, offset 0x310 + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x92, offset 0x320 + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x93, offset 0x32e + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x33c + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x95, offset 0x34a + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x96, offset 0x350 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x97, offset 0x352 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x98, offset 0x355 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0x99, offset 0x35f + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0x9a, offset 0x361 + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "" + // Total size of tables: 53KB (54006 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go new file mode 100644 index 0000000..a1d366a --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/transform.go @@ -0,0 +1,88 @@ +// Copyright 2013 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 norm + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// Reset implements the Reset method of the transform.Transformer interface. +func (Form) Reset() {} + +// Transform implements the Transform method of the transform.Transformer +// interface. It may need to write segments of up to MaxSegmentSize at once. +// Users should either catch ErrShortDst and allow dst to grow or have dst be at +// least of size MaxTransformChunkSize to be guaranteed of progress. +func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Cap the maximum number of src bytes to check. + b := src + eof := atEOF + if ns := len(dst); ns < len(b) { + err = transform.ErrShortDst + eof = false + b = b[:ns] + } + i, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof) + n := copy(dst, b[:i]) + if !ok { + nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) + return nDst + n, nSrc + n, err + } + + if err == nil && n < len(src) && !atEOF { + err = transform.ErrShortSrc + } + return n, n, err +} + +func flushTransform(rb *reorderBuffer) bool { + // Write out (must fully fit in dst, or else it is an ErrShortDst). + if len(rb.out) < rb.nrune*utf8.UTFMax { + return false + } + rb.out = rb.out[rb.flushCopy(rb.out):] + return true +} + +var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} + +// transform implements the transform.Transformer interface. It is only called +// when quickSpan does not pass for a given string. +func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // TODO: get rid of reorderBuffer. See CL 23460044. + rb := reorderBuffer{} + rb.init(f, src) + for { + // Load segment into reorder buffer. + rb.setFlusher(dst[nDst:], flushTransform) + end := decomposeSegment(&rb, nSrc, atEOF) + if end < 0 { + return nDst, nSrc, errs[-end] + } + nDst = len(dst) - len(rb.out) + nSrc = end + + // Next quickSpan. + end = rb.nsrc + eof := atEOF + if n := nSrc + len(dst) - nDst; n < end { + err = transform.ErrShortDst + end = n + eof = false + } + end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) + n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) + nSrc += n + nDst += n + if ok { + if err == nil && n < rb.nsrc && !atEOF { + err = transform.ErrShortSrc + } + return nDst, nSrc, err + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/vendor/golang.org/x/text/unicode/norm/trie.go new file mode 100644 index 0000000..423386b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/trie.go @@ -0,0 +1,54 @@ +// Copyright 2011 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 norm + +type valueRange struct { + value uint16 // header: value:stride + lo, hi byte // header: lo:n +} + +type sparseBlocks struct { + values []valueRange + offset []uint16 +} + +var nfcSparse = sparseBlocks{ + values: nfcSparseValues[:], + offset: nfcSparseOffset[:], +} + +var nfkcSparse = sparseBlocks{ + values: nfkcSparseValues[:], + offset: nfkcSparseOffset[:], +} + +var ( + nfcData = newNfcTrie(0) + nfkcData = newNfkcTrie(0) +) + +// lookupValue determines the type of block n and looks up the value for b. +// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block +// is a list of ranges with an accompanying value. Given a matching range r, +// the value for b is by r.value + (b - r.lo) * stride. +func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { + offset := t.offset[n] + header := t.values[offset] + lo := offset + 1 + hi := lo + uint16(header.lo) + for lo < hi { + m := lo + (hi-lo)/2 + r := t.values[m] + if r.lo <= b && b <= r.hi { + return r.value + uint16(b-r.lo)*header.value + } + if b < r.lo { + hi = m + } else { + lo = m + 1 + } + } + return 0 +} diff --git a/vendor/gopkg.in/ini.v1/.gitignore b/vendor/gopkg.in/ini.v1/.gitignore new file mode 100644 index 0000000..1241112 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/.gitignore @@ -0,0 +1,6 @@ +testdata/conf_out.ini +ini.sublime-project +ini.sublime-workspace +testdata/conf_reflect.ini +.idea +/.vscode diff --git a/vendor/gopkg.in/ini.v1/.travis.yml b/vendor/gopkg.in/ini.v1/.travis.yml new file mode 100644 index 0000000..149b724 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/.travis.yml @@ -0,0 +1,20 @@ +sudo: false +language: go +go: + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - 1.10.x + - 1.11.x + - 1.12.x + - 1.13.x + +install: skip +script: + - go get golang.org/x/tools/cmd/cover + - go get github.com/smartystreets/goconvey + - mkdir -p $HOME/gopath/src/gopkg.in + - ln -s $HOME/gopath/src/github.com/go-ini/ini $HOME/gopath/src/gopkg.in/ini.v1 + - cd $HOME/gopath/src/gopkg.in/ini.v1 + - go test -v -cover -race diff --git a/vendor/gopkg.in/ini.v1/LICENSE b/vendor/gopkg.in/ini.v1/LICENSE new file mode 100644 index 0000000..d361bbc --- /dev/null +++ b/vendor/gopkg.in/ini.v1/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright 2014 Unknwon + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/ini.v1/Makefile b/vendor/gopkg.in/ini.v1/Makefile new file mode 100644 index 0000000..af27ff0 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/Makefile @@ -0,0 +1,15 @@ +.PHONY: build test bench vet coverage + +build: vet bench + +test: + go test -v -cover -race + +bench: + go test -v -cover -race -test.bench=. -test.benchmem + +vet: + go vet + +coverage: + go test -coverprofile=c.out && go tool cover -html=c.out && rm c.out diff --git a/vendor/gopkg.in/ini.v1/README.md b/vendor/gopkg.in/ini.v1/README.md new file mode 100644 index 0000000..3d6d3cf --- /dev/null +++ b/vendor/gopkg.in/ini.v1/README.md @@ -0,0 +1,39 @@ +# INI + +[![Build Status](https://img.shields.io/travis/go-ini/ini/master.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/go-ini/ini) [![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg?style=for-the-badge&logo=sourcegraph)](https://sourcegraph.com/github.com/go-ini/ini) + +![](https://avatars0.githubusercontent.com/u/10216035?v=3&s=200) + +Package ini provides INI file read and write functionality in Go. + +## Features + +- Load from multiple data sources(`[]byte`, file and `io.ReadCloser`) with overwrites. +- Read with recursion values. +- Read with parent-child sections. +- Read with auto-increment key names. +- Read with multiple-line values. +- Read with tons of helper methods. +- Read and convert values to Go types. +- Read and **WRITE** comments of sections and keys. +- Manipulate sections, keys and comments with ease. +- Keep sections and keys in order as you parse and save. + +## Installation + +The minimum requirement of Go is **1.6**. + +```sh +$ go get gopkg.in/ini.v1 +``` + +Please add `-u` flag to update in the future. + +## Getting Help + +- [Getting Started](https://ini.unknwon.io/docs/intro/getting_started) +- [API Documentation](https://gowalker.org/gopkg.in/ini.v1) + +## License + +This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. diff --git a/vendor/gopkg.in/ini.v1/data_source.go b/vendor/gopkg.in/ini.v1/data_source.go new file mode 100644 index 0000000..dc0277e --- /dev/null +++ b/vendor/gopkg.in/ini.v1/data_source.go @@ -0,0 +1,74 @@ +// Copyright 2019 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bytes" + "fmt" + "io" + "io/ioutil" + "os" +) + +var ( + _ dataSource = (*sourceFile)(nil) + _ dataSource = (*sourceData)(nil) + _ dataSource = (*sourceReadCloser)(nil) +) + +// dataSource is an interface that returns object which can be read and closed. +type dataSource interface { + ReadCloser() (io.ReadCloser, error) +} + +// sourceFile represents an object that contains content on the local file system. +type sourceFile struct { + name string +} + +func (s sourceFile) ReadCloser() (_ io.ReadCloser, err error) { + return os.Open(s.name) +} + +// sourceData represents an object that contains content in memory. +type sourceData struct { + data []byte +} + +func (s *sourceData) ReadCloser() (io.ReadCloser, error) { + return ioutil.NopCloser(bytes.NewReader(s.data)), nil +} + +// sourceReadCloser represents an input stream with Close method. +type sourceReadCloser struct { + reader io.ReadCloser +} + +func (s *sourceReadCloser) ReadCloser() (io.ReadCloser, error) { + return s.reader, nil +} + +func parseDataSource(source interface{}) (dataSource, error) { + switch s := source.(type) { + case string: + return sourceFile{s}, nil + case []byte: + return &sourceData{s}, nil + case io.ReadCloser: + return &sourceReadCloser{s}, nil + default: + return nil, fmt.Errorf("error parsing data source: unknown type %q", s) + } +} diff --git a/vendor/gopkg.in/ini.v1/deprecated.go b/vendor/gopkg.in/ini.v1/deprecated.go new file mode 100644 index 0000000..e8bda06 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/deprecated.go @@ -0,0 +1,25 @@ +// Copyright 2019 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +const ( + // Deprecated: Use "DefaultSection" instead. + DEFAULT_SECTION = DefaultSection +) + +var ( + // Deprecated: AllCapsUnderscore converts to format ALL_CAPS_UNDERSCORE. + AllCapsUnderscore = SnackCase +) diff --git a/vendor/gopkg.in/ini.v1/error.go b/vendor/gopkg.in/ini.v1/error.go new file mode 100644 index 0000000..d88347c --- /dev/null +++ b/vendor/gopkg.in/ini.v1/error.go @@ -0,0 +1,34 @@ +// Copyright 2016 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "fmt" +) + +// ErrDelimiterNotFound indicates the error type of no delimiter is found which there should be one. +type ErrDelimiterNotFound struct { + Line string +} + +// IsErrDelimiterNotFound returns true if the given error is an instance of ErrDelimiterNotFound. +func IsErrDelimiterNotFound(err error) bool { + _, ok := err.(ErrDelimiterNotFound) + return ok +} + +func (err ErrDelimiterNotFound) Error() string { + return fmt.Sprintf("key-value delimiter not found: %s", err.Line) +} diff --git a/vendor/gopkg.in/ini.v1/file.go b/vendor/gopkg.in/ini.v1/file.go new file mode 100644 index 0000000..017b77c --- /dev/null +++ b/vendor/gopkg.in/ini.v1/file.go @@ -0,0 +1,418 @@ +// Copyright 2017 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bytes" + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "strings" + "sync" +) + +// File represents a combination of a or more INI file(s) in memory. +type File struct { + options LoadOptions + dataSources []dataSource + + // Should make things safe, but sometimes doesn't matter. + BlockMode bool + lock sync.RWMutex + + // To keep data in order. + sectionList []string + // Actual data is stored here. + sections map[string]*Section + + NameMapper + ValueMapper +} + +// newFile initializes File object with given data sources. +func newFile(dataSources []dataSource, opts LoadOptions) *File { + if len(opts.KeyValueDelimiters) == 0 { + opts.KeyValueDelimiters = "=:" + } + return &File{ + BlockMode: true, + dataSources: dataSources, + sections: make(map[string]*Section), + sectionList: make([]string, 0, 10), + options: opts, + } +} + +// Empty returns an empty file object. +func Empty() *File { + // Ignore error here, we sure our data is good. + f, _ := Load([]byte("")) + return f +} + +// NewSection creates a new section. +func (f *File) NewSection(name string) (*Section, error) { + if len(name) == 0 { + return nil, errors.New("error creating new section: empty section name") + } else if f.options.Insensitive && name != DefaultSection { + name = strings.ToLower(name) + } + + if f.BlockMode { + f.lock.Lock() + defer f.lock.Unlock() + } + + if inSlice(name, f.sectionList) { + return f.sections[name], nil + } + + f.sectionList = append(f.sectionList, name) + f.sections[name] = newSection(f, name) + return f.sections[name], nil +} + +// NewRawSection creates a new section with an unparseable body. +func (f *File) NewRawSection(name, body string) (*Section, error) { + section, err := f.NewSection(name) + if err != nil { + return nil, err + } + + section.isRawSection = true + section.rawBody = body + return section, nil +} + +// NewSections creates a list of sections. +func (f *File) NewSections(names ...string) (err error) { + for _, name := range names { + if _, err = f.NewSection(name); err != nil { + return err + } + } + return nil +} + +// GetSection returns section by given name. +func (f *File) GetSection(name string) (*Section, error) { + if len(name) == 0 { + name = DefaultSection + } + if f.options.Insensitive { + name = strings.ToLower(name) + } + + if f.BlockMode { + f.lock.RLock() + defer f.lock.RUnlock() + } + + sec := f.sections[name] + if sec == nil { + return nil, fmt.Errorf("section '%s' does not exist", name) + } + return sec, nil +} + +// Section assumes named section exists and returns a zero-value when not. +func (f *File) Section(name string) *Section { + sec, err := f.GetSection(name) + if err != nil { + // Note: It's OK here because the only possible error is empty section name, + // but if it's empty, this piece of code won't be executed. + sec, _ = f.NewSection(name) + return sec + } + return sec +} + +// Sections returns a list of Section stored in the current instance. +func (f *File) Sections() []*Section { + if f.BlockMode { + f.lock.RLock() + defer f.lock.RUnlock() + } + + sections := make([]*Section, len(f.sectionList)) + for i, name := range f.sectionList { + sections[i] = f.sections[name] + } + return sections +} + +// ChildSections returns a list of child sections of given section name. +func (f *File) ChildSections(name string) []*Section { + return f.Section(name).ChildSections() +} + +// SectionStrings returns list of section names. +func (f *File) SectionStrings() []string { + list := make([]string, len(f.sectionList)) + copy(list, f.sectionList) + return list +} + +// DeleteSection deletes a section. +func (f *File) DeleteSection(name string) { + if f.BlockMode { + f.lock.Lock() + defer f.lock.Unlock() + } + + if len(name) == 0 { + name = DefaultSection + } + + for i, s := range f.sectionList { + if s == name { + f.sectionList = append(f.sectionList[:i], f.sectionList[i+1:]...) + delete(f.sections, name) + return + } + } +} + +func (f *File) reload(s dataSource) error { + r, err := s.ReadCloser() + if err != nil { + return err + } + defer r.Close() + + return f.parse(r) +} + +// Reload reloads and parses all data sources. +func (f *File) Reload() (err error) { + for _, s := range f.dataSources { + if err = f.reload(s); err != nil { + // In loose mode, we create an empty default section for nonexistent files. + if os.IsNotExist(err) && f.options.Loose { + f.parse(bytes.NewBuffer(nil)) + continue + } + return err + } + } + return nil +} + +// Append appends one or more data sources and reloads automatically. +func (f *File) Append(source interface{}, others ...interface{}) error { + ds, err := parseDataSource(source) + if err != nil { + return err + } + f.dataSources = append(f.dataSources, ds) + for _, s := range others { + ds, err = parseDataSource(s) + if err != nil { + return err + } + f.dataSources = append(f.dataSources, ds) + } + return f.Reload() +} + +func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { + equalSign := DefaultFormatLeft + "=" + DefaultFormatRight + + if PrettyFormat || PrettyEqual { + equalSign = " = " + } + + // Use buffer to make sure target is safe until finish encoding. + buf := bytes.NewBuffer(nil) + for i, sname := range f.sectionList { + sec := f.Section(sname) + if len(sec.Comment) > 0 { + // Support multiline comments + lines := strings.Split(sec.Comment, LineBreak) + for i := range lines { + if lines[i][0] != '#' && lines[i][0] != ';' { + lines[i] = "; " + lines[i] + } else { + lines[i] = lines[i][:1] + " " + strings.TrimSpace(lines[i][1:]) + } + + if _, err := buf.WriteString(lines[i] + LineBreak); err != nil { + return nil, err + } + } + } + + if i > 0 || DefaultHeader { + if _, err := buf.WriteString("[" + sname + "]" + LineBreak); err != nil { + return nil, err + } + } else { + // Write nothing if default section is empty + if len(sec.keyList) == 0 { + continue + } + } + + if sec.isRawSection { + if _, err := buf.WriteString(sec.rawBody); err != nil { + return nil, err + } + + if PrettySection { + // Put a line between sections + if _, err := buf.WriteString(LineBreak); err != nil { + return nil, err + } + } + continue + } + + // Count and generate alignment length and buffer spaces using the + // longest key. Keys may be modifed if they contain certain characters so + // we need to take that into account in our calculation. + alignLength := 0 + if PrettyFormat { + for _, kname := range sec.keyList { + keyLength := len(kname) + // First case will surround key by ` and second by """ + if strings.Contains(kname, "\"") || strings.ContainsAny(kname, f.options.KeyValueDelimiters) { + keyLength += 2 + } else if strings.Contains(kname, "`") { + keyLength += 6 + } + + if keyLength > alignLength { + alignLength = keyLength + } + } + } + alignSpaces := bytes.Repeat([]byte(" "), alignLength) + + KeyList: + for _, kname := range sec.keyList { + key := sec.Key(kname) + if len(key.Comment) > 0 { + if len(indent) > 0 && sname != DefaultSection { + buf.WriteString(indent) + } + + // Support multiline comments + lines := strings.Split(key.Comment, LineBreak) + for i := range lines { + if lines[i][0] != '#' && lines[i][0] != ';' { + lines[i] = "; " + strings.TrimSpace(lines[i]) + } else { + lines[i] = lines[i][:1] + " " + strings.TrimSpace(lines[i][1:]) + } + + if _, err := buf.WriteString(lines[i] + LineBreak); err != nil { + return nil, err + } + } + } + + if len(indent) > 0 && sname != DefaultSection { + buf.WriteString(indent) + } + + switch { + case key.isAutoIncrement: + kname = "-" + case strings.Contains(kname, "\"") || strings.ContainsAny(kname, f.options.KeyValueDelimiters): + kname = "`" + kname + "`" + case strings.Contains(kname, "`"): + kname = `"""` + kname + `"""` + } + + for _, val := range key.ValueWithShadows() { + if _, err := buf.WriteString(kname); err != nil { + return nil, err + } + + if key.isBooleanType { + if kname != sec.keyList[len(sec.keyList)-1] { + buf.WriteString(LineBreak) + } + continue KeyList + } + + // Write out alignment spaces before "=" sign + if PrettyFormat { + buf.Write(alignSpaces[:alignLength-len(kname)]) + } + + // In case key value contains "\n", "`", "\"", "#" or ";" + if strings.ContainsAny(val, "\n`") { + val = `"""` + val + `"""` + } else if !f.options.IgnoreInlineComment && strings.ContainsAny(val, "#;") { + val = "`" + val + "`" + } + if _, err := buf.WriteString(equalSign + val + LineBreak); err != nil { + return nil, err + } + } + + for _, val := range key.nestedValues { + if _, err := buf.WriteString(indent + " " + val + LineBreak); err != nil { + return nil, err + } + } + } + + if PrettySection { + // Put a line between sections + if _, err := buf.WriteString(LineBreak); err != nil { + return nil, err + } + } + } + + return buf, nil +} + +// WriteToIndent writes content into io.Writer with given indention. +// If PrettyFormat has been set to be true, +// it will align "=" sign with spaces under each section. +func (f *File) WriteToIndent(w io.Writer, indent string) (int64, error) { + buf, err := f.writeToBuffer(indent) + if err != nil { + return 0, err + } + return buf.WriteTo(w) +} + +// WriteTo writes file content into io.Writer. +func (f *File) WriteTo(w io.Writer) (int64, error) { + return f.WriteToIndent(w, "") +} + +// SaveToIndent writes content to file system with given value indention. +func (f *File) SaveToIndent(filename, indent string) error { + // Note: Because we are truncating with os.Create, + // so it's safer to save to a temporary file location and rename afte done. + buf, err := f.writeToBuffer(indent) + if err != nil { + return err + } + + return ioutil.WriteFile(filename, buf.Bytes(), 0666) +} + +// SaveTo writes content to file system. +func (f *File) SaveTo(filename string) error { + return f.SaveToIndent(filename, "") +} diff --git a/vendor/gopkg.in/ini.v1/helper.go b/vendor/gopkg.in/ini.v1/helper.go new file mode 100644 index 0000000..f9d80a6 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/helper.go @@ -0,0 +1,24 @@ +// Copyright 2019 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +func inSlice(str string, s []string) bool { + for _, v := range s { + if str == v { + return true + } + } + return false +} diff --git a/vendor/gopkg.in/ini.v1/ini.go b/vendor/gopkg.in/ini.v1/ini.go new file mode 100644 index 0000000..945fc00 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/ini.go @@ -0,0 +1,166 @@ +// +build go1.6 + +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package ini provides INI file read and write functionality in Go. +package ini + +import ( + "regexp" + "runtime" +) + +const ( + // DefaultSection is the name of default section. You can use this constant or the string literal. + // In most of cases, an empty string is all you need to access the section. + DefaultSection = "DEFAULT" + + // Maximum allowed depth when recursively substituing variable names. + depthValues = 99 + version = "1.51.0" +) + +// Version returns current package version literal. +func Version() string { + return version +} + +var ( + // LineBreak is the delimiter to determine or compose a new line. + // This variable will be changed to "\r\n" automatically on Windows at package init time. + LineBreak = "\n" + + // Variable regexp pattern: %(variable)s + varPattern = regexp.MustCompile(`%\(([^)]+)\)s`) + + // DefaultHeader explicitly writes default section header. + DefaultHeader = false + + // PrettySection indicates whether to put a line between sections. + PrettySection = true + // PrettyFormat indicates whether to align "=" sign with spaces to produce pretty output + // or reduce all possible spaces for compact format. + PrettyFormat = true + // PrettyEqual places spaces around "=" sign even when PrettyFormat is false. + PrettyEqual = false + // DefaultFormatLeft places custom spaces on the left when PrettyFormat and PrettyEqual are both disabled. + DefaultFormatLeft = "" + // DefaultFormatRight places custom spaces on the right when PrettyFormat and PrettyEqual are both disabled. + DefaultFormatRight = "" +) + +func init() { + if runtime.GOOS == "windows" { + LineBreak = "\r\n" + } +} + +// LoadOptions contains all customized options used for load data source(s). +type LoadOptions struct { + // Loose indicates whether the parser should ignore nonexistent files or return error. + Loose bool + // Insensitive indicates whether the parser forces all section and key names to lowercase. + Insensitive bool + // IgnoreContinuation indicates whether to ignore continuation lines while parsing. + IgnoreContinuation bool + // IgnoreInlineComment indicates whether to ignore comments at the end of value and treat it as part of value. + IgnoreInlineComment bool + // SkipUnrecognizableLines indicates whether to skip unrecognizable lines that do not conform to key/value pairs. + SkipUnrecognizableLines bool + // AllowBooleanKeys indicates whether to allow boolean type keys or treat as value is missing. + // This type of keys are mostly used in my.cnf. + AllowBooleanKeys bool + // AllowShadows indicates whether to keep track of keys with same name under same section. + AllowShadows bool + // AllowNestedValues indicates whether to allow AWS-like nested values. + // Docs: http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#nested-values + AllowNestedValues bool + // AllowPythonMultilineValues indicates whether to allow Python-like multi-line values. + // Docs: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + // Relevant quote: Values can also span multiple lines, as long as they are indented deeper + // than the first line of the value. + AllowPythonMultilineValues bool + // SpaceBeforeInlineComment indicates whether to allow comment symbols (\# and \;) inside value. + // Docs: https://docs.python.org/2/library/configparser.html + // Quote: Comments may appear on their own in an otherwise empty line, or may be entered in lines holding values or section names. + // In the latter case, they need to be preceded by a whitespace character to be recognized as a comment. + SpaceBeforeInlineComment bool + // UnescapeValueDoubleQuotes indicates whether to unescape double quotes inside value to regular format + // when value is surrounded by double quotes, e.g. key="a \"value\"" => key=a "value" + UnescapeValueDoubleQuotes bool + // UnescapeValueCommentSymbols indicates to unescape comment symbols (\# and \;) inside value to regular format + // when value is NOT surrounded by any quotes. + // Note: UNSTABLE, behavior might change to only unescape inside double quotes but may noy necessary at all. + UnescapeValueCommentSymbols bool + // UnparseableSections stores a list of blocks that are allowed with raw content which do not otherwise + // conform to key/value pairs. Specify the names of those blocks here. + UnparseableSections []string + // KeyValueDelimiters is the sequence of delimiters that are used to separate key and value. By default, it is "=:". + KeyValueDelimiters string + // PreserveSurroundedQuote indicates whether to preserve surrounded quote (single and double quotes). + PreserveSurroundedQuote bool + // DebugFunc is called to collect debug information (currently only useful to debug parsing Python-style multiline values). + DebugFunc DebugFunc + // ReaderBufferSize is the buffer size of the reader in bytes. + ReaderBufferSize int +} + +// DebugFunc is the type of function called to log parse events. +type DebugFunc func(message string) + +// LoadSources allows caller to apply customized options for loading from data source(s). +func LoadSources(opts LoadOptions, source interface{}, others ...interface{}) (_ *File, err error) { + sources := make([]dataSource, len(others)+1) + sources[0], err = parseDataSource(source) + if err != nil { + return nil, err + } + for i := range others { + sources[i+1], err = parseDataSource(others[i]) + if err != nil { + return nil, err + } + } + f := newFile(sources, opts) + if err = f.Reload(); err != nil { + return nil, err + } + return f, nil +} + +// Load loads and parses from INI data sources. +// Arguments can be mixed of file name with string type, or raw data in []byte. +// It will return error if list contains nonexistent files. +func Load(source interface{}, others ...interface{}) (*File, error) { + return LoadSources(LoadOptions{}, source, others...) +} + +// LooseLoad has exactly same functionality as Load function +// except it ignores nonexistent files instead of returning error. +func LooseLoad(source interface{}, others ...interface{}) (*File, error) { + return LoadSources(LoadOptions{Loose: true}, source, others...) +} + +// InsensitiveLoad has exactly same functionality as Load function +// except it forces all section and key names to be lowercased. +func InsensitiveLoad(source interface{}, others ...interface{}) (*File, error) { + return LoadSources(LoadOptions{Insensitive: true}, source, others...) +} + +// ShadowLoad has exactly same functionality as Load function +// except it allows have shadow keys. +func ShadowLoad(source interface{}, others ...interface{}) (*File, error) { + return LoadSources(LoadOptions{AllowShadows: true}, source, others...) +} diff --git a/vendor/gopkg.in/ini.v1/key.go b/vendor/gopkg.in/ini.v1/key.go new file mode 100644 index 0000000..3c19741 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/key.go @@ -0,0 +1,801 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bytes" + "errors" + "fmt" + "strconv" + "strings" + "time" +) + +// Key represents a key under a section. +type Key struct { + s *Section + Comment string + name string + value string + isAutoIncrement bool + isBooleanType bool + + isShadow bool + shadows []*Key + + nestedValues []string +} + +// newKey simply return a key object with given values. +func newKey(s *Section, name, val string) *Key { + return &Key{ + s: s, + name: name, + value: val, + } +} + +func (k *Key) addShadow(val string) error { + if k.isShadow { + return errors.New("cannot add shadow to another shadow key") + } else if k.isAutoIncrement || k.isBooleanType { + return errors.New("cannot add shadow to auto-increment or boolean key") + } + + // Deduplicate shadows based on their values. + if k.value == val { + return nil + } + for i := range k.shadows { + if k.shadows[i].value == val { + return nil + } + } + + shadow := newKey(k.s, k.name, val) + shadow.isShadow = true + k.shadows = append(k.shadows, shadow) + return nil +} + +// AddShadow adds a new shadow key to itself. +func (k *Key) AddShadow(val string) error { + if !k.s.f.options.AllowShadows { + return errors.New("shadow key is not allowed") + } + return k.addShadow(val) +} + +func (k *Key) addNestedValue(val string) error { + if k.isAutoIncrement || k.isBooleanType { + return errors.New("cannot add nested value to auto-increment or boolean key") + } + + k.nestedValues = append(k.nestedValues, val) + return nil +} + +// AddNestedValue adds a nested value to the key. +func (k *Key) AddNestedValue(val string) error { + if !k.s.f.options.AllowNestedValues { + return errors.New("nested value is not allowed") + } + return k.addNestedValue(val) +} + +// ValueMapper represents a mapping function for values, e.g. os.ExpandEnv +type ValueMapper func(string) string + +// Name returns name of key. +func (k *Key) Name() string { + return k.name +} + +// Value returns raw value of key for performance purpose. +func (k *Key) Value() string { + return k.value +} + +// ValueWithShadows returns raw values of key and its shadows if any. +func (k *Key) ValueWithShadows() []string { + if len(k.shadows) == 0 { + return []string{k.value} + } + vals := make([]string, len(k.shadows)+1) + vals[0] = k.value + for i := range k.shadows { + vals[i+1] = k.shadows[i].value + } + return vals +} + +// NestedValues returns nested values stored in the key. +// It is possible returned value is nil if no nested values stored in the key. +func (k *Key) NestedValues() []string { + return k.nestedValues +} + +// transformValue takes a raw value and transforms to its final string. +func (k *Key) transformValue(val string) string { + if k.s.f.ValueMapper != nil { + val = k.s.f.ValueMapper(val) + } + + // Fail-fast if no indicate char found for recursive value + if !strings.Contains(val, "%") { + return val + } + for i := 0; i < depthValues; i++ { + vr := varPattern.FindString(val) + if len(vr) == 0 { + break + } + + // Take off leading '%(' and trailing ')s'. + noption := vr[2 : len(vr)-2] + + // Search in the same section. + // If not found or found the key itself, then search again in default section. + nk, err := k.s.GetKey(noption) + if err != nil || k == nk { + nk, _ = k.s.f.Section("").GetKey(noption) + if nk == nil { + // Stop when no results found in the default section, + // and returns the value as-is. + break + } + } + + // Substitute by new value and take off leading '%(' and trailing ')s'. + val = strings.Replace(val, vr, nk.value, -1) + } + return val +} + +// String returns string representation of value. +func (k *Key) String() string { + return k.transformValue(k.value) +} + +// Validate accepts a validate function which can +// return modifed result as key value. +func (k *Key) Validate(fn func(string) string) string { + return fn(k.String()) +} + +// parseBool returns the boolean value represented by the string. +// +// It accepts 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On, +// 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off. +// Any other value returns an error. +func parseBool(str string) (value bool, err error) { + switch str { + case "1", "t", "T", "true", "TRUE", "True", "YES", "yes", "Yes", "y", "ON", "on", "On": + return true, nil + case "0", "f", "F", "false", "FALSE", "False", "NO", "no", "No", "n", "OFF", "off", "Off": + return false, nil + } + return false, fmt.Errorf("parsing \"%s\": invalid syntax", str) +} + +// Bool returns bool type value. +func (k *Key) Bool() (bool, error) { + return parseBool(k.String()) +} + +// Float64 returns float64 type value. +func (k *Key) Float64() (float64, error) { + return strconv.ParseFloat(k.String(), 64) +} + +// Int returns int type value. +func (k *Key) Int() (int, error) { + v, err := strconv.ParseInt(k.String(), 0, 64) + return int(v), err +} + +// Int64 returns int64 type value. +func (k *Key) Int64() (int64, error) { + return strconv.ParseInt(k.String(), 0, 64) +} + +// Uint returns uint type valued. +func (k *Key) Uint() (uint, error) { + u, e := strconv.ParseUint(k.String(), 0, 64) + return uint(u), e +} + +// Uint64 returns uint64 type value. +func (k *Key) Uint64() (uint64, error) { + return strconv.ParseUint(k.String(), 0, 64) +} + +// Duration returns time.Duration type value. +func (k *Key) Duration() (time.Duration, error) { + return time.ParseDuration(k.String()) +} + +// TimeFormat parses with given format and returns time.Time type value. +func (k *Key) TimeFormat(format string) (time.Time, error) { + return time.Parse(format, k.String()) +} + +// Time parses with RFC3339 format and returns time.Time type value. +func (k *Key) Time() (time.Time, error) { + return k.TimeFormat(time.RFC3339) +} + +// MustString returns default value if key value is empty. +func (k *Key) MustString(defaultVal string) string { + val := k.String() + if len(val) == 0 { + k.value = defaultVal + return defaultVal + } + return val +} + +// MustBool always returns value without error, +// it returns false if error occurs. +func (k *Key) MustBool(defaultVal ...bool) bool { + val, err := k.Bool() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatBool(defaultVal[0]) + return defaultVal[0] + } + return val +} + +// MustFloat64 always returns value without error, +// it returns 0.0 if error occurs. +func (k *Key) MustFloat64(defaultVal ...float64) float64 { + val, err := k.Float64() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatFloat(defaultVal[0], 'f', -1, 64) + return defaultVal[0] + } + return val +} + +// MustInt always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustInt(defaultVal ...int) int { + val, err := k.Int() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatInt(int64(defaultVal[0]), 10) + return defaultVal[0] + } + return val +} + +// MustInt64 always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustInt64(defaultVal ...int64) int64 { + val, err := k.Int64() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatInt(defaultVal[0], 10) + return defaultVal[0] + } + return val +} + +// MustUint always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustUint(defaultVal ...uint) uint { + val, err := k.Uint() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatUint(uint64(defaultVal[0]), 10) + return defaultVal[0] + } + return val +} + +// MustUint64 always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustUint64(defaultVal ...uint64) uint64 { + val, err := k.Uint64() + if len(defaultVal) > 0 && err != nil { + k.value = strconv.FormatUint(defaultVal[0], 10) + return defaultVal[0] + } + return val +} + +// MustDuration always returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustDuration(defaultVal ...time.Duration) time.Duration { + val, err := k.Duration() + if len(defaultVal) > 0 && err != nil { + k.value = defaultVal[0].String() + return defaultVal[0] + } + return val +} + +// MustTimeFormat always parses with given format and returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustTimeFormat(format string, defaultVal ...time.Time) time.Time { + val, err := k.TimeFormat(format) + if len(defaultVal) > 0 && err != nil { + k.value = defaultVal[0].Format(format) + return defaultVal[0] + } + return val +} + +// MustTime always parses with RFC3339 format and returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustTime(defaultVal ...time.Time) time.Time { + return k.MustTimeFormat(time.RFC3339, defaultVal...) +} + +// In always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) In(defaultVal string, candidates []string) string { + val := k.String() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InFloat64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InFloat64(defaultVal float64, candidates []float64) float64 { + val := k.MustFloat64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InInt always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InInt(defaultVal int, candidates []int) int { + val := k.MustInt() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InInt64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InInt64(defaultVal int64, candidates []int64) int64 { + val := k.MustInt64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InUint always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InUint(defaultVal uint, candidates []uint) uint { + val := k.MustUint() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InUint64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InUint64(defaultVal uint64, candidates []uint64) uint64 { + val := k.MustUint64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InTimeFormat always parses with given format and returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InTimeFormat(format string, defaultVal time.Time, candidates []time.Time) time.Time { + val := k.MustTimeFormat(format) + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InTime always parses with RFC3339 format and returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InTime(defaultVal time.Time, candidates []time.Time) time.Time { + return k.InTimeFormat(time.RFC3339, defaultVal, candidates) +} + +// RangeFloat64 checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeFloat64(defaultVal, min, max float64) float64 { + val := k.MustFloat64() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeInt checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeInt(defaultVal, min, max int) int { + val := k.MustInt() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeInt64 checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeInt64(defaultVal, min, max int64) int64 { + val := k.MustInt64() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeTimeFormat checks if value with given format is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeTimeFormat(format string, defaultVal, min, max time.Time) time.Time { + val := k.MustTimeFormat(format) + if val.Unix() < min.Unix() || val.Unix() > max.Unix() { + return defaultVal + } + return val +} + +// RangeTime checks if value with RFC3339 format is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeTime(defaultVal, min, max time.Time) time.Time { + return k.RangeTimeFormat(time.RFC3339, defaultVal, min, max) +} + +// Strings returns list of string divided by given delimiter. +func (k *Key) Strings(delim string) []string { + str := k.String() + if len(str) == 0 { + return []string{} + } + + runes := []rune(str) + vals := make([]string, 0, 2) + var buf bytes.Buffer + escape := false + idx := 0 + for { + if escape { + escape = false + if runes[idx] != '\\' && !strings.HasPrefix(string(runes[idx:]), delim) { + buf.WriteRune('\\') + } + buf.WriteRune(runes[idx]) + } else { + if runes[idx] == '\\' { + escape = true + } else if strings.HasPrefix(string(runes[idx:]), delim) { + idx += len(delim) - 1 + vals = append(vals, strings.TrimSpace(buf.String())) + buf.Reset() + } else { + buf.WriteRune(runes[idx]) + } + } + idx++ + if idx == len(runes) { + break + } + } + + if buf.Len() > 0 { + vals = append(vals, strings.TrimSpace(buf.String())) + } + + return vals +} + +// StringsWithShadows returns list of string divided by given delimiter. +// Shadows will also be appended if any. +func (k *Key) StringsWithShadows(delim string) []string { + vals := k.ValueWithShadows() + results := make([]string, 0, len(vals)*2) + for i := range vals { + if len(vals) == 0 { + continue + } + + results = append(results, strings.Split(vals[i], delim)...) + } + + for i := range results { + results[i] = k.transformValue(strings.TrimSpace(results[i])) + } + return results +} + +// Float64s returns list of float64 divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Float64s(delim string) []float64 { + vals, _ := k.parseFloat64s(k.Strings(delim), true, false) + return vals +} + +// Ints returns list of int divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Ints(delim string) []int { + vals, _ := k.parseInts(k.Strings(delim), true, false) + return vals +} + +// Int64s returns list of int64 divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Int64s(delim string) []int64 { + vals, _ := k.parseInt64s(k.Strings(delim), true, false) + return vals +} + +// Uints returns list of uint divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Uints(delim string) []uint { + vals, _ := k.parseUints(k.Strings(delim), true, false) + return vals +} + +// Uint64s returns list of uint64 divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Uint64s(delim string) []uint64 { + vals, _ := k.parseUint64s(k.Strings(delim), true, false) + return vals +} + +// Bools returns list of bool divided by given delimiter. Any invalid input will be treated as zero value. +func (k *Key) Bools(delim string) []bool { + vals, _ := k.parseBools(k.Strings(delim), true, false) + return vals +} + +// TimesFormat parses with given format and returns list of time.Time divided by given delimiter. +// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC). +func (k *Key) TimesFormat(format, delim string) []time.Time { + vals, _ := k.parseTimesFormat(format, k.Strings(delim), true, false) + return vals +} + +// Times parses with RFC3339 format and returns list of time.Time divided by given delimiter. +// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC). +func (k *Key) Times(delim string) []time.Time { + return k.TimesFormat(time.RFC3339, delim) +} + +// ValidFloat64s returns list of float64 divided by given delimiter. If some value is not float, then +// it will not be included to result list. +func (k *Key) ValidFloat64s(delim string) []float64 { + vals, _ := k.parseFloat64s(k.Strings(delim), false, false) + return vals +} + +// ValidInts returns list of int divided by given delimiter. If some value is not integer, then it will +// not be included to result list. +func (k *Key) ValidInts(delim string) []int { + vals, _ := k.parseInts(k.Strings(delim), false, false) + return vals +} + +// ValidInt64s returns list of int64 divided by given delimiter. If some value is not 64-bit integer, +// then it will not be included to result list. +func (k *Key) ValidInt64s(delim string) []int64 { + vals, _ := k.parseInt64s(k.Strings(delim), false, false) + return vals +} + +// ValidUints returns list of uint divided by given delimiter. If some value is not unsigned integer, +// then it will not be included to result list. +func (k *Key) ValidUints(delim string) []uint { + vals, _ := k.parseUints(k.Strings(delim), false, false) + return vals +} + +// ValidUint64s returns list of uint64 divided by given delimiter. If some value is not 64-bit unsigned +// integer, then it will not be included to result list. +func (k *Key) ValidUint64s(delim string) []uint64 { + vals, _ := k.parseUint64s(k.Strings(delim), false, false) + return vals +} + +// ValidBools returns list of bool divided by given delimiter. If some value is not 64-bit unsigned +// integer, then it will not be included to result list. +func (k *Key) ValidBools(delim string) []bool { + vals, _ := k.parseBools(k.Strings(delim), false, false) + return vals +} + +// ValidTimesFormat parses with given format and returns list of time.Time divided by given delimiter. +func (k *Key) ValidTimesFormat(format, delim string) []time.Time { + vals, _ := k.parseTimesFormat(format, k.Strings(delim), false, false) + return vals +} + +// ValidTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter. +func (k *Key) ValidTimes(delim string) []time.Time { + return k.ValidTimesFormat(time.RFC3339, delim) +} + +// StrictFloat64s returns list of float64 divided by given delimiter or error on first invalid input. +func (k *Key) StrictFloat64s(delim string) ([]float64, error) { + return k.parseFloat64s(k.Strings(delim), false, true) +} + +// StrictInts returns list of int divided by given delimiter or error on first invalid input. +func (k *Key) StrictInts(delim string) ([]int, error) { + return k.parseInts(k.Strings(delim), false, true) +} + +// StrictInt64s returns list of int64 divided by given delimiter or error on first invalid input. +func (k *Key) StrictInt64s(delim string) ([]int64, error) { + return k.parseInt64s(k.Strings(delim), false, true) +} + +// StrictUints returns list of uint divided by given delimiter or error on first invalid input. +func (k *Key) StrictUints(delim string) ([]uint, error) { + return k.parseUints(k.Strings(delim), false, true) +} + +// StrictUint64s returns list of uint64 divided by given delimiter or error on first invalid input. +func (k *Key) StrictUint64s(delim string) ([]uint64, error) { + return k.parseUint64s(k.Strings(delim), false, true) +} + +// StrictBools returns list of bool divided by given delimiter or error on first invalid input. +func (k *Key) StrictBools(delim string) ([]bool, error) { + return k.parseBools(k.Strings(delim), false, true) +} + +// StrictTimesFormat parses with given format and returns list of time.Time divided by given delimiter +// or error on first invalid input. +func (k *Key) StrictTimesFormat(format, delim string) ([]time.Time, error) { + return k.parseTimesFormat(format, k.Strings(delim), false, true) +} + +// StrictTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter +// or error on first invalid input. +func (k *Key) StrictTimes(delim string) ([]time.Time, error) { + return k.StrictTimesFormat(time.RFC3339, delim) +} + +// parseBools transforms strings to bools. +func (k *Key) parseBools(strs []string, addInvalid, returnOnInvalid bool) ([]bool, error) { + vals := make([]bool, 0, len(strs)) + for _, str := range strs { + val, err := parseBool(str) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// parseFloat64s transforms strings to float64s. +func (k *Key) parseFloat64s(strs []string, addInvalid, returnOnInvalid bool) ([]float64, error) { + vals := make([]float64, 0, len(strs)) + for _, str := range strs { + val, err := strconv.ParseFloat(str, 64) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// parseInts transforms strings to ints. +func (k *Key) parseInts(strs []string, addInvalid, returnOnInvalid bool) ([]int, error) { + vals := make([]int, 0, len(strs)) + for _, str := range strs { + valInt64, err := strconv.ParseInt(str, 0, 64) + val := int(valInt64) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// parseInt64s transforms strings to int64s. +func (k *Key) parseInt64s(strs []string, addInvalid, returnOnInvalid bool) ([]int64, error) { + vals := make([]int64, 0, len(strs)) + for _, str := range strs { + val, err := strconv.ParseInt(str, 0, 64) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// parseUints transforms strings to uints. +func (k *Key) parseUints(strs []string, addInvalid, returnOnInvalid bool) ([]uint, error) { + vals := make([]uint, 0, len(strs)) + for _, str := range strs { + val, err := strconv.ParseUint(str, 0, 0) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, uint(val)) + } + } + return vals, nil +} + +// parseUint64s transforms strings to uint64s. +func (k *Key) parseUint64s(strs []string, addInvalid, returnOnInvalid bool) ([]uint64, error) { + vals := make([]uint64, 0, len(strs)) + for _, str := range strs { + val, err := strconv.ParseUint(str, 0, 64) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// parseTimesFormat transforms strings to times in given format. +func (k *Key) parseTimesFormat(format string, strs []string, addInvalid, returnOnInvalid bool) ([]time.Time, error) { + vals := make([]time.Time, 0, len(strs)) + for _, str := range strs { + val, err := time.Parse(format, str) + if err != nil && returnOnInvalid { + return nil, err + } + if err == nil || addInvalid { + vals = append(vals, val) + } + } + return vals, nil +} + +// SetValue changes key value. +func (k *Key) SetValue(v string) { + if k.s.f.BlockMode { + k.s.f.lock.Lock() + defer k.s.f.lock.Unlock() + } + + k.value = v + k.s.keysHash[k.name] = v +} diff --git a/vendor/gopkg.in/ini.v1/parser.go b/vendor/gopkg.in/ini.v1/parser.go new file mode 100644 index 0000000..53ab45c --- /dev/null +++ b/vendor/gopkg.in/ini.v1/parser.go @@ -0,0 +1,526 @@ +// Copyright 2015 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bufio" + "bytes" + "fmt" + "io" + "regexp" + "strconv" + "strings" + "unicode" +) + +const minReaderBufferSize = 4096 + +var pythonMultiline = regexp.MustCompile(`^([\t\f ]+)(.*)`) + +type parserOptions struct { + IgnoreContinuation bool + IgnoreInlineComment bool + AllowPythonMultilineValues bool + SpaceBeforeInlineComment bool + UnescapeValueDoubleQuotes bool + UnescapeValueCommentSymbols bool + PreserveSurroundedQuote bool + DebugFunc DebugFunc + ReaderBufferSize int +} + +type parser struct { + buf *bufio.Reader + options parserOptions + + isEOF bool + count int + comment *bytes.Buffer +} + +func (p *parser) debug(format string, args ...interface{}) { + if p.options.DebugFunc != nil { + p.options.DebugFunc(fmt.Sprintf(format, args...)) + } +} + +func newParser(r io.Reader, opts parserOptions) *parser { + size := opts.ReaderBufferSize + if size < minReaderBufferSize { + size = minReaderBufferSize + } + + return &parser{ + buf: bufio.NewReaderSize(r, size), + options: opts, + count: 1, + comment: &bytes.Buffer{}, + } +} + +// BOM handles header of UTF-8, UTF-16 LE and UTF-16 BE's BOM format. +// http://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding +func (p *parser) BOM() error { + mask, err := p.buf.Peek(2) + if err != nil && err != io.EOF { + return err + } else if len(mask) < 2 { + return nil + } + + switch { + case mask[0] == 254 && mask[1] == 255: + fallthrough + case mask[0] == 255 && mask[1] == 254: + p.buf.Read(mask) + case mask[0] == 239 && mask[1] == 187: + mask, err := p.buf.Peek(3) + if err != nil && err != io.EOF { + return err + } else if len(mask) < 3 { + return nil + } + if mask[2] == 191 { + p.buf.Read(mask) + } + } + return nil +} + +func (p *parser) readUntil(delim byte) ([]byte, error) { + data, err := p.buf.ReadBytes(delim) + if err != nil { + if err == io.EOF { + p.isEOF = true + } else { + return nil, err + } + } + return data, nil +} + +func cleanComment(in []byte) ([]byte, bool) { + i := bytes.IndexAny(in, "#;") + if i == -1 { + return nil, false + } + return in[i:], true +} + +func readKeyName(delimiters string, in []byte) (string, int, error) { + line := string(in) + + // Check if key name surrounded by quotes. + var keyQuote string + if line[0] == '"' { + if len(line) > 6 && string(line[0:3]) == `"""` { + keyQuote = `"""` + } else { + keyQuote = `"` + } + } else if line[0] == '`' { + keyQuote = "`" + } + + // Get out key name + endIdx := -1 + if len(keyQuote) > 0 { + startIdx := len(keyQuote) + // FIXME: fail case -> """"""name"""=value + pos := strings.Index(line[startIdx:], keyQuote) + if pos == -1 { + return "", -1, fmt.Errorf("missing closing key quote: %s", line) + } + pos += startIdx + + // Find key-value delimiter + i := strings.IndexAny(line[pos+startIdx:], delimiters) + if i < 0 { + return "", -1, ErrDelimiterNotFound{line} + } + endIdx = pos + i + return strings.TrimSpace(line[startIdx:pos]), endIdx + startIdx + 1, nil + } + + endIdx = strings.IndexAny(line, delimiters) + if endIdx < 0 { + return "", -1, ErrDelimiterNotFound{line} + } + return strings.TrimSpace(line[0:endIdx]), endIdx + 1, nil +} + +func (p *parser) readMultilines(line, val, valQuote string) (string, error) { + for { + data, err := p.readUntil('\n') + if err != nil { + return "", err + } + next := string(data) + + pos := strings.LastIndex(next, valQuote) + if pos > -1 { + val += next[:pos] + + comment, has := cleanComment([]byte(next[pos:])) + if has { + p.comment.Write(bytes.TrimSpace(comment)) + } + break + } + val += next + if p.isEOF { + return "", fmt.Errorf("missing closing key quote from '%s' to '%s'", line, next) + } + } + return val, nil +} + +func (p *parser) readContinuationLines(val string) (string, error) { + for { + data, err := p.readUntil('\n') + if err != nil { + return "", err + } + next := strings.TrimSpace(string(data)) + + if len(next) == 0 { + break + } + val += next + if val[len(val)-1] != '\\' { + break + } + val = val[:len(val)-1] + } + return val, nil +} + +// hasSurroundedQuote check if and only if the first and last characters +// are quotes \" or \'. +// It returns false if any other parts also contain same kind of quotes. +func hasSurroundedQuote(in string, quote byte) bool { + return len(in) >= 2 && in[0] == quote && in[len(in)-1] == quote && + strings.IndexByte(in[1:], quote) == len(in)-2 +} + +func (p *parser) readValue(in []byte, bufferSize int) (string, error) { + + line := strings.TrimLeftFunc(string(in), unicode.IsSpace) + if len(line) == 0 { + if p.options.AllowPythonMultilineValues && len(in) > 0 && in[len(in)-1] == '\n' { + return p.readPythonMultilines(line, bufferSize) + } + return "", nil + } + + var valQuote string + if len(line) > 3 && string(line[0:3]) == `"""` { + valQuote = `"""` + } else if line[0] == '`' { + valQuote = "`" + } else if p.options.UnescapeValueDoubleQuotes && line[0] == '"' { + valQuote = `"` + } + + if len(valQuote) > 0 { + startIdx := len(valQuote) + pos := strings.LastIndex(line[startIdx:], valQuote) + // Check for multi-line value + if pos == -1 { + return p.readMultilines(line, line[startIdx:], valQuote) + } + + if p.options.UnescapeValueDoubleQuotes && valQuote == `"` { + return strings.Replace(line[startIdx:pos+startIdx], `\"`, `"`, -1), nil + } + return line[startIdx : pos+startIdx], nil + } + + lastChar := line[len(line)-1] + // Won't be able to reach here if value only contains whitespace + line = strings.TrimSpace(line) + trimmedLastChar := line[len(line)-1] + + // Check continuation lines when desired + if !p.options.IgnoreContinuation && trimmedLastChar == '\\' { + return p.readContinuationLines(line[:len(line)-1]) + } + + // Check if ignore inline comment + if !p.options.IgnoreInlineComment { + var i int + if p.options.SpaceBeforeInlineComment { + i = strings.Index(line, " #") + if i == -1 { + i = strings.Index(line, " ;") + } + + } else { + i = strings.IndexAny(line, "#;") + } + + if i > -1 { + p.comment.WriteString(line[i:]) + line = strings.TrimSpace(line[:i]) + } + + } + + // Trim single and double quotes + if (hasSurroundedQuote(line, '\'') || + hasSurroundedQuote(line, '"')) && !p.options.PreserveSurroundedQuote { + line = line[1 : len(line)-1] + } else if len(valQuote) == 0 && p.options.UnescapeValueCommentSymbols { + if strings.Contains(line, `\;`) { + line = strings.Replace(line, `\;`, ";", -1) + } + if strings.Contains(line, `\#`) { + line = strings.Replace(line, `\#`, "#", -1) + } + } else if p.options.AllowPythonMultilineValues && lastChar == '\n' { + return p.readPythonMultilines(line, bufferSize) + } + + return line, nil +} + +func (p *parser) readPythonMultilines(line string, bufferSize int) (string, error) { + parserBufferPeekResult, _ := p.buf.Peek(bufferSize) + peekBuffer := bytes.NewBuffer(parserBufferPeekResult) + + indentSize := 0 + for { + peekData, peekErr := peekBuffer.ReadBytes('\n') + if peekErr != nil { + if peekErr == io.EOF { + p.debug("readPythonMultilines: io.EOF, peekData: %q, line: %q", string(peekData), line) + return line, nil + } + + p.debug("readPythonMultilines: failed to peek with error: %v", peekErr) + return "", peekErr + } + + p.debug("readPythonMultilines: parsing %q", string(peekData)) + + peekMatches := pythonMultiline.FindStringSubmatch(string(peekData)) + p.debug("readPythonMultilines: matched %d parts", len(peekMatches)) + for n, v := range peekMatches { + p.debug(" %d: %q", n, v) + } + + // Return if not a Python multiline value. + if len(peekMatches) != 3 { + p.debug("readPythonMultilines: end of value, got: %q", line) + return line, nil + } + + // Determine indent size and line prefix. + currentIndentSize := len(peekMatches[1]) + if indentSize < 1 { + indentSize = currentIndentSize + p.debug("readPythonMultilines: indent size is %d", indentSize) + } + + // Make sure each line is indented at least as far as first line. + if currentIndentSize < indentSize { + p.debug("readPythonMultilines: end of value, current indent: %d, expected indent: %d, line: %q", currentIndentSize, indentSize, line) + return line, nil + } + + // Advance the parser reader (buffer) in-sync with the peek buffer. + _, err := p.buf.Discard(len(peekData)) + if err != nil { + p.debug("readPythonMultilines: failed to skip to the end, returning error") + return "", err + } + + // Handle indented empty line. + line += "\n" + peekMatches[1][indentSize:] + peekMatches[2] + } +} + +// parse parses data through an io.Reader. +func (f *File) parse(reader io.Reader) (err error) { + p := newParser(reader, parserOptions{ + IgnoreContinuation: f.options.IgnoreContinuation, + IgnoreInlineComment: f.options.IgnoreInlineComment, + AllowPythonMultilineValues: f.options.AllowPythonMultilineValues, + SpaceBeforeInlineComment: f.options.SpaceBeforeInlineComment, + UnescapeValueDoubleQuotes: f.options.UnescapeValueDoubleQuotes, + UnescapeValueCommentSymbols: f.options.UnescapeValueCommentSymbols, + PreserveSurroundedQuote: f.options.PreserveSurroundedQuote, + DebugFunc: f.options.DebugFunc, + ReaderBufferSize: f.options.ReaderBufferSize, + }) + if err = p.BOM(); err != nil { + return fmt.Errorf("BOM: %v", err) + } + + // Ignore error because default section name is never empty string. + name := DefaultSection + if f.options.Insensitive { + name = strings.ToLower(DefaultSection) + } + section, _ := f.NewSection(name) + + // This "last" is not strictly equivalent to "previous one" if current key is not the first nested key + var isLastValueEmpty bool + var lastRegularKey *Key + + var line []byte + var inUnparseableSection bool + + // NOTE: Iterate and increase `currentPeekSize` until + // the size of the parser buffer is found. + // TODO(unknwon): When Golang 1.10 is the lowest version supported, replace with `parserBufferSize := p.buf.Size()`. + parserBufferSize := 0 + // NOTE: Peek 4kb at a time. + currentPeekSize := minReaderBufferSize + + if f.options.AllowPythonMultilineValues { + for { + peekBytes, _ := p.buf.Peek(currentPeekSize) + peekBytesLength := len(peekBytes) + + if parserBufferSize >= peekBytesLength { + break + } + + currentPeekSize *= 2 + parserBufferSize = peekBytesLength + } + } + + for !p.isEOF { + line, err = p.readUntil('\n') + if err != nil { + return err + } + + if f.options.AllowNestedValues && + isLastValueEmpty && len(line) > 0 { + if line[0] == ' ' || line[0] == '\t' { + lastRegularKey.addNestedValue(string(bytes.TrimSpace(line))) + continue + } + } + + line = bytes.TrimLeftFunc(line, unicode.IsSpace) + if len(line) == 0 { + continue + } + + // Comments + if line[0] == '#' || line[0] == ';' { + // Note: we do not care ending line break, + // it is needed for adding second line, + // so just clean it once at the end when set to value. + p.comment.Write(line) + continue + } + + // Section + if line[0] == '[' { + // Read to the next ']' (TODO: support quoted strings) + closeIdx := bytes.LastIndexByte(line, ']') + if closeIdx == -1 { + return fmt.Errorf("unclosed section: %s", line) + } + + name := string(line[1:closeIdx]) + section, err = f.NewSection(name) + if err != nil { + return err + } + + comment, has := cleanComment(line[closeIdx+1:]) + if has { + p.comment.Write(comment) + } + + section.Comment = strings.TrimSpace(p.comment.String()) + + // Reset aotu-counter and comments + p.comment.Reset() + p.count = 1 + + inUnparseableSection = false + for i := range f.options.UnparseableSections { + if f.options.UnparseableSections[i] == name || + (f.options.Insensitive && strings.ToLower(f.options.UnparseableSections[i]) == strings.ToLower(name)) { + inUnparseableSection = true + continue + } + } + continue + } + + if inUnparseableSection { + section.isRawSection = true + section.rawBody += string(line) + continue + } + + kname, offset, err := readKeyName(f.options.KeyValueDelimiters, line) + if err != nil { + // Treat as boolean key when desired, and whole line is key name. + if IsErrDelimiterNotFound(err) { + switch { + case f.options.AllowBooleanKeys: + kname, err := p.readValue(line, parserBufferSize) + if err != nil { + return err + } + key, err := section.NewBooleanKey(kname) + if err != nil { + return err + } + key.Comment = strings.TrimSpace(p.comment.String()) + p.comment.Reset() + continue + + case f.options.SkipUnrecognizableLines: + continue + } + } + return err + } + + // Auto increment. + isAutoIncr := false + if kname == "-" { + isAutoIncr = true + kname = "#" + strconv.Itoa(p.count) + p.count++ + } + + value, err := p.readValue(line[offset:], parserBufferSize) + if err != nil { + return err + } + isLastValueEmpty = len(value) == 0 + + key, err := section.NewKey(kname, value) + if err != nil { + return err + } + key.isAutoIncrement = isAutoIncr + key.Comment = strings.TrimSpace(p.comment.String()) + p.comment.Reset() + lastRegularKey = key + } + return nil +} diff --git a/vendor/gopkg.in/ini.v1/section.go b/vendor/gopkg.in/ini.v1/section.go new file mode 100644 index 0000000..0bd3e13 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/section.go @@ -0,0 +1,256 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "errors" + "fmt" + "strings" +) + +// Section represents a config section. +type Section struct { + f *File + Comment string + name string + keys map[string]*Key + keyList []string + keysHash map[string]string + + isRawSection bool + rawBody string +} + +func newSection(f *File, name string) *Section { + return &Section{ + f: f, + name: name, + keys: make(map[string]*Key), + keyList: make([]string, 0, 10), + keysHash: make(map[string]string), + } +} + +// Name returns name of Section. +func (s *Section) Name() string { + return s.name +} + +// Body returns rawBody of Section if the section was marked as unparseable. +// It still follows the other rules of the INI format surrounding leading/trailing whitespace. +func (s *Section) Body() string { + return strings.TrimSpace(s.rawBody) +} + +// SetBody updates body content only if section is raw. +func (s *Section) SetBody(body string) { + if !s.isRawSection { + return + } + s.rawBody = body +} + +// NewKey creates a new key to given section. +func (s *Section) NewKey(name, val string) (*Key, error) { + if len(name) == 0 { + return nil, errors.New("error creating new key: empty key name") + } else if s.f.options.Insensitive { + name = strings.ToLower(name) + } + + if s.f.BlockMode { + s.f.lock.Lock() + defer s.f.lock.Unlock() + } + + if inSlice(name, s.keyList) { + if s.f.options.AllowShadows { + if err := s.keys[name].addShadow(val); err != nil { + return nil, err + } + } else { + s.keys[name].value = val + s.keysHash[name] = val + } + return s.keys[name], nil + } + + s.keyList = append(s.keyList, name) + s.keys[name] = newKey(s, name, val) + s.keysHash[name] = val + return s.keys[name], nil +} + +// NewBooleanKey creates a new boolean type key to given section. +func (s *Section) NewBooleanKey(name string) (*Key, error) { + key, err := s.NewKey(name, "true") + if err != nil { + return nil, err + } + + key.isBooleanType = true + return key, nil +} + +// GetKey returns key in section by given name. +func (s *Section) GetKey(name string) (*Key, error) { + if s.f.BlockMode { + s.f.lock.RLock() + } + if s.f.options.Insensitive { + name = strings.ToLower(name) + } + key := s.keys[name] + if s.f.BlockMode { + s.f.lock.RUnlock() + } + + if key == nil { + // Check if it is a child-section. + sname := s.name + for { + if i := strings.LastIndex(sname, "."); i > -1 { + sname = sname[:i] + sec, err := s.f.GetSection(sname) + if err != nil { + continue + } + return sec.GetKey(name) + } + break + } + return nil, fmt.Errorf("error when getting key of section '%s': key '%s' not exists", s.name, name) + } + return key, nil +} + +// HasKey returns true if section contains a key with given name. +func (s *Section) HasKey(name string) bool { + key, _ := s.GetKey(name) + return key != nil +} + +// Deprecated: Use "HasKey" instead. +func (s *Section) Haskey(name string) bool { + return s.HasKey(name) +} + +// HasValue returns true if section contains given raw value. +func (s *Section) HasValue(value string) bool { + if s.f.BlockMode { + s.f.lock.RLock() + defer s.f.lock.RUnlock() + } + + for _, k := range s.keys { + if value == k.value { + return true + } + } + return false +} + +// Key assumes named Key exists in section and returns a zero-value when not. +func (s *Section) Key(name string) *Key { + key, err := s.GetKey(name) + if err != nil { + // It's OK here because the only possible error is empty key name, + // but if it's empty, this piece of code won't be executed. + key, _ = s.NewKey(name, "") + return key + } + return key +} + +// Keys returns list of keys of section. +func (s *Section) Keys() []*Key { + keys := make([]*Key, len(s.keyList)) + for i := range s.keyList { + keys[i] = s.Key(s.keyList[i]) + } + return keys +} + +// ParentKeys returns list of keys of parent section. +func (s *Section) ParentKeys() []*Key { + var parentKeys []*Key + sname := s.name + for { + if i := strings.LastIndex(sname, "."); i > -1 { + sname = sname[:i] + sec, err := s.f.GetSection(sname) + if err != nil { + continue + } + parentKeys = append(parentKeys, sec.Keys()...) + } else { + break + } + + } + return parentKeys +} + +// KeyStrings returns list of key names of section. +func (s *Section) KeyStrings() []string { + list := make([]string, len(s.keyList)) + copy(list, s.keyList) + return list +} + +// KeysHash returns keys hash consisting of names and values. +func (s *Section) KeysHash() map[string]string { + if s.f.BlockMode { + s.f.lock.RLock() + defer s.f.lock.RUnlock() + } + + hash := map[string]string{} + for key, value := range s.keysHash { + hash[key] = value + } + return hash +} + +// DeleteKey deletes a key from section. +func (s *Section) DeleteKey(name string) { + if s.f.BlockMode { + s.f.lock.Lock() + defer s.f.lock.Unlock() + } + + for i, k := range s.keyList { + if k == name { + s.keyList = append(s.keyList[:i], s.keyList[i+1:]...) + delete(s.keys, name) + delete(s.keysHash, name) + return + } + } +} + +// ChildSections returns a list of child sections of current section. +// For example, "[parent.child1]" and "[parent.child12]" are child sections +// of section "[parent]". +func (s *Section) ChildSections() []*Section { + prefix := s.name + "." + children := make([]*Section, 0, 3) + for _, name := range s.f.sectionList { + if strings.HasPrefix(name, prefix) { + children = append(children, s.f.sections[name]) + } + } + return children +} diff --git a/vendor/gopkg.in/ini.v1/struct.go b/vendor/gopkg.in/ini.v1/struct.go new file mode 100644 index 0000000..6bc70e4 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/struct.go @@ -0,0 +1,603 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bytes" + "errors" + "fmt" + "reflect" + "strings" + "time" + "unicode" +) + +// NameMapper represents a ini tag name mapper. +type NameMapper func(string) string + +// Built-in name getters. +var ( + // SnackCase converts to format SNACK_CASE. + SnackCase NameMapper = func(raw string) string { + newstr := make([]rune, 0, len(raw)) + for i, chr := range raw { + if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { + if i > 0 { + newstr = append(newstr, '_') + } + } + newstr = append(newstr, unicode.ToUpper(chr)) + } + return string(newstr) + } + // TitleUnderscore converts to format title_underscore. + TitleUnderscore NameMapper = func(raw string) string { + newstr := make([]rune, 0, len(raw)) + for i, chr := range raw { + if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { + if i > 0 { + newstr = append(newstr, '_') + } + chr -= 'A' - 'a' + } + newstr = append(newstr, chr) + } + return string(newstr) + } +) + +func (s *Section) parseFieldName(raw, actual string) string { + if len(actual) > 0 { + return actual + } + if s.f.NameMapper != nil { + return s.f.NameMapper(raw) + } + return raw +} + +func parseDelim(actual string) string { + if len(actual) > 0 { + return actual + } + return "," +} + +var reflectTime = reflect.TypeOf(time.Now()).Kind() + +// setSliceWithProperType sets proper values to slice based on its type. +func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { + var strs []string + if allowShadow { + strs = key.StringsWithShadows(delim) + } else { + strs = key.Strings(delim) + } + + numVals := len(strs) + if numVals == 0 { + return nil + } + + var vals interface{} + var err error + + sliceOf := field.Type().Elem().Kind() + switch sliceOf { + case reflect.String: + vals = strs + case reflect.Int: + vals, err = key.parseInts(strs, true, false) + case reflect.Int64: + vals, err = key.parseInt64s(strs, true, false) + case reflect.Uint: + vals, err = key.parseUints(strs, true, false) + case reflect.Uint64: + vals, err = key.parseUint64s(strs, true, false) + case reflect.Float64: + vals, err = key.parseFloat64s(strs, true, false) + case reflect.Bool: + vals, err = key.parseBools(strs, true, false) + case reflectTime: + vals, err = key.parseTimesFormat(time.RFC3339, strs, true, false) + default: + return fmt.Errorf("unsupported type '[]%s'", sliceOf) + } + if err != nil && isStrict { + return err + } + + slice := reflect.MakeSlice(field.Type(), numVals, numVals) + for i := 0; i < numVals; i++ { + switch sliceOf { + case reflect.String: + slice.Index(i).Set(reflect.ValueOf(vals.([]string)[i])) + case reflect.Int: + slice.Index(i).Set(reflect.ValueOf(vals.([]int)[i])) + case reflect.Int64: + slice.Index(i).Set(reflect.ValueOf(vals.([]int64)[i])) + case reflect.Uint: + slice.Index(i).Set(reflect.ValueOf(vals.([]uint)[i])) + case reflect.Uint64: + slice.Index(i).Set(reflect.ValueOf(vals.([]uint64)[i])) + case reflect.Float64: + slice.Index(i).Set(reflect.ValueOf(vals.([]float64)[i])) + case reflect.Bool: + slice.Index(i).Set(reflect.ValueOf(vals.([]bool)[i])) + case reflectTime: + slice.Index(i).Set(reflect.ValueOf(vals.([]time.Time)[i])) + } + } + field.Set(slice) + return nil +} + +func wrapStrictError(err error, isStrict bool) error { + if isStrict { + return err + } + return nil +} + +// setWithProperType sets proper value to field based on its type, +// but it does not return error for failing parsing, +// because we want to use default value that is already assigned to struct. +func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error { + vt := t + isPtr := t.Kind() == reflect.Ptr + if isPtr { + vt = t.Elem() + } + switch vt.Kind() { + case reflect.String: + stringVal := key.String() + if isPtr { + field.Set(reflect.ValueOf(&stringVal)) + } else if len(stringVal) > 0 { + field.SetString(key.String()) + } + case reflect.Bool: + boolVal, err := key.Bool() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + field.Set(reflect.ValueOf(&boolVal)) + } else { + field.SetBool(boolVal) + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + // ParseDuration will not return err for `0`, so check the type name + if vt.Name() == "Duration" { + durationVal, err := key.Duration() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + field.Set(reflect.ValueOf(&durationVal)) + } else if int64(durationVal) > 0 { + field.Set(reflect.ValueOf(durationVal)) + } + return nil + } + + intVal, err := key.Int64() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + pv := reflect.New(t.Elem()) + pv.Elem().SetInt(intVal) + field.Set(pv) + } else { + field.SetInt(intVal) + } + // byte is an alias for uint8, so supporting uint8 breaks support for byte + case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: + durationVal, err := key.Duration() + // Skip zero value + if err == nil && uint64(durationVal) > 0 { + if isPtr { + field.Set(reflect.ValueOf(&durationVal)) + } else { + field.Set(reflect.ValueOf(durationVal)) + } + return nil + } + + uintVal, err := key.Uint64() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + pv := reflect.New(t.Elem()) + pv.Elem().SetUint(uintVal) + field.Set(pv) + } else { + field.SetUint(uintVal) + } + + case reflect.Float32, reflect.Float64: + floatVal, err := key.Float64() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + pv := reflect.New(t.Elem()) + pv.Elem().SetFloat(floatVal) + field.Set(pv) + } else { + field.SetFloat(floatVal) + } + case reflectTime: + timeVal, err := key.Time() + if err != nil { + return wrapStrictError(err, isStrict) + } + if isPtr { + field.Set(reflect.ValueOf(&timeVal)) + } else { + field.Set(reflect.ValueOf(timeVal)) + } + case reflect.Slice: + return setSliceWithProperType(key, field, delim, allowShadow, isStrict) + default: + return fmt.Errorf("unsupported type '%s'", t) + } + return nil +} + +func parseTagOptions(tag string) (rawName string, omitEmpty bool, allowShadow bool) { + opts := strings.SplitN(tag, ",", 3) + rawName = opts[0] + if len(opts) > 1 { + omitEmpty = opts[1] == "omitempty" + } + if len(opts) > 2 { + allowShadow = opts[2] == "allowshadow" + } + return rawName, omitEmpty, allowShadow +} + +func (s *Section) mapTo(val reflect.Value, isStrict bool) error { + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + typ := val.Type() + + for i := 0; i < typ.NumField(); i++ { + field := val.Field(i) + tpField := typ.Field(i) + + tag := tpField.Tag.Get("ini") + if tag == "-" { + continue + } + + rawName, _, allowShadow := parseTagOptions(tag) + fieldName := s.parseFieldName(tpField.Name, rawName) + if len(fieldName) == 0 || !field.CanSet() { + continue + } + + isStruct := tpField.Type.Kind() == reflect.Struct + isStructPtr := tpField.Type.Kind() == reflect.Ptr && tpField.Type.Elem().Kind() == reflect.Struct + isAnonymous := tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous + if isAnonymous { + field.Set(reflect.New(tpField.Type.Elem())) + } + + if isAnonymous || isStruct || isStructPtr { + if sec, err := s.f.GetSection(fieldName); err == nil { + // Only set the field to non-nil struct value if we have + // a section for it. Otherwise, we end up with a non-nil + // struct ptr even though there is no data. + if isStructPtr && field.IsNil() { + field.Set(reflect.New(tpField.Type.Elem())) + } + if err = sec.mapTo(field, isStrict); err != nil { + return fmt.Errorf("error mapping field(%s): %v", fieldName, err) + } + continue + } + } + if key, err := s.GetKey(fieldName); err == nil { + delim := parseDelim(tpField.Tag.Get("delim")) + if err = setWithProperType(tpField.Type, key, field, delim, allowShadow, isStrict); err != nil { + return fmt.Errorf("error mapping field(%s): %v", fieldName, err) + } + } + } + return nil +} + +// MapTo maps section to given struct. +func (s *Section) MapTo(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot map to non-pointer struct") + } + + return s.mapTo(val, false) +} + +// StrictMapTo maps section to given struct in strict mode, +// which returns all possible error including value parsing error. +func (s *Section) StrictMapTo(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot map to non-pointer struct") + } + + return s.mapTo(val, true) +} + +// MapTo maps file to given struct. +func (f *File) MapTo(v interface{}) error { + return f.Section("").MapTo(v) +} + +// StrictMapTo maps file to given struct in strict mode, +// which returns all possible error including value parsing error. +func (f *File) StrictMapTo(v interface{}) error { + return f.Section("").StrictMapTo(v) +} + +// MapToWithMapper maps data sources to given struct with name mapper. +func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { + cfg, err := Load(source, others...) + if err != nil { + return err + } + cfg.NameMapper = mapper + return cfg.MapTo(v) +} + +// StrictMapToWithMapper maps data sources to given struct with name mapper in strict mode, +// which returns all possible error including value parsing error. +func StrictMapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { + cfg, err := Load(source, others...) + if err != nil { + return err + } + cfg.NameMapper = mapper + return cfg.StrictMapTo(v) +} + +// MapTo maps data sources to given struct. +func MapTo(v, source interface{}, others ...interface{}) error { + return MapToWithMapper(v, nil, source, others...) +} + +// StrictMapTo maps data sources to given struct in strict mode, +// which returns all possible error including value parsing error. +func StrictMapTo(v, source interface{}, others ...interface{}) error { + return StrictMapToWithMapper(v, nil, source, others...) +} + +// reflectSliceWithProperType does the opposite thing as setSliceWithProperType. +func reflectSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow bool) error { + slice := field.Slice(0, field.Len()) + if field.Len() == 0 { + return nil + } + sliceOf := field.Type().Elem().Kind() + + if allowShadow { + var keyWithShadows *Key + for i := 0; i < field.Len(); i++ { + var val string + switch sliceOf { + case reflect.String: + val = slice.Index(i).String() + case reflect.Int, reflect.Int64: + val = fmt.Sprint(slice.Index(i).Int()) + case reflect.Uint, reflect.Uint64: + val = fmt.Sprint(slice.Index(i).Uint()) + case reflect.Float64: + val = fmt.Sprint(slice.Index(i).Float()) + case reflect.Bool: + val = fmt.Sprint(slice.Index(i).Bool()) + case reflectTime: + val = slice.Index(i).Interface().(time.Time).Format(time.RFC3339) + default: + return fmt.Errorf("unsupported type '[]%s'", sliceOf) + } + + if i == 0 { + keyWithShadows = newKey(key.s, key.name, val) + } else { + keyWithShadows.AddShadow(val) + } + } + key = keyWithShadows + return nil + } + + var buf bytes.Buffer + for i := 0; i < field.Len(); i++ { + switch sliceOf { + case reflect.String: + buf.WriteString(slice.Index(i).String()) + case reflect.Int, reflect.Int64: + buf.WriteString(fmt.Sprint(slice.Index(i).Int())) + case reflect.Uint, reflect.Uint64: + buf.WriteString(fmt.Sprint(slice.Index(i).Uint())) + case reflect.Float64: + buf.WriteString(fmt.Sprint(slice.Index(i).Float())) + case reflect.Bool: + buf.WriteString(fmt.Sprint(slice.Index(i).Bool())) + case reflectTime: + buf.WriteString(slice.Index(i).Interface().(time.Time).Format(time.RFC3339)) + default: + return fmt.Errorf("unsupported type '[]%s'", sliceOf) + } + buf.WriteString(delim) + } + key.SetValue(buf.String()[:buf.Len()-len(delim)]) + return nil +} + +// reflectWithProperType does the opposite thing as setWithProperType. +func reflectWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow bool) error { + switch t.Kind() { + case reflect.String: + key.SetValue(field.String()) + case reflect.Bool: + key.SetValue(fmt.Sprint(field.Bool())) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + key.SetValue(fmt.Sprint(field.Int())) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + key.SetValue(fmt.Sprint(field.Uint())) + case reflect.Float32, reflect.Float64: + key.SetValue(fmt.Sprint(field.Float())) + case reflectTime: + key.SetValue(fmt.Sprint(field.Interface().(time.Time).Format(time.RFC3339))) + case reflect.Slice: + return reflectSliceWithProperType(key, field, delim, allowShadow) + case reflect.Ptr: + if !field.IsNil() { + return reflectWithProperType(t.Elem(), key, field.Elem(), delim, allowShadow) + } + default: + return fmt.Errorf("unsupported type '%s'", t) + } + return nil +} + +// CR: copied from encoding/json/encode.go with modifications of time.Time support. +// TODO: add more test coverage. +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflectTime: + t, ok := v.Interface().(time.Time) + return ok && t.IsZero() + } + return false +} + +func (s *Section) reflectFrom(val reflect.Value) error { + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + typ := val.Type() + + for i := 0; i < typ.NumField(); i++ { + field := val.Field(i) + tpField := typ.Field(i) + + tag := tpField.Tag.Get("ini") + if tag == "-" { + continue + } + + rawName, omitEmpty, allowShadow := parseTagOptions(tag) + if omitEmpty && isEmptyValue(field) { + continue + } + + fieldName := s.parseFieldName(tpField.Name, rawName) + if len(fieldName) == 0 || !field.CanSet() { + continue + } + + if (tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous) || + (tpField.Type.Kind() == reflect.Struct && tpField.Type.Name() != "Time") { + // Note: The only error here is section doesn't exist. + sec, err := s.f.GetSection(fieldName) + if err != nil { + // Note: fieldName can never be empty here, ignore error. + sec, _ = s.f.NewSection(fieldName) + } + + // Add comment from comment tag + if len(sec.Comment) == 0 { + sec.Comment = tpField.Tag.Get("comment") + } + + if err = sec.reflectFrom(field); err != nil { + return fmt.Errorf("error reflecting field (%s): %v", fieldName, err) + } + continue + } + + // Note: Same reason as secion. + key, err := s.GetKey(fieldName) + if err != nil { + key, _ = s.NewKey(fieldName, "") + } + + // Add comment from comment tag + if len(key.Comment) == 0 { + key.Comment = tpField.Tag.Get("comment") + } + + if err = reflectWithProperType(tpField.Type, key, field, parseDelim(tpField.Tag.Get("delim")), allowShadow); err != nil { + return fmt.Errorf("error reflecting field (%s): %v", fieldName, err) + } + + } + return nil +} + +// ReflectFrom reflects secion from given struct. +func (s *Section) ReflectFrom(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot reflect from non-pointer struct") + } + + return s.reflectFrom(val) +} + +// ReflectFrom reflects file from given struct. +func (f *File) ReflectFrom(v interface{}) error { + return f.Section("").ReflectFrom(v) +} + +// ReflectFromWithMapper reflects data sources from given struct with name mapper. +func ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error { + cfg.NameMapper = mapper + return cfg.ReflectFrom(v) +} + +// ReflectFrom reflects data sources from given struct. +func ReflectFrom(cfg *File, v interface{}) error { + return ReflectFromWithMapper(cfg, v, nil) +} diff --git a/vendor/gopkg.in/yaml.v2/.travis.yml b/vendor/gopkg.in/yaml.v2/.travis.yml new file mode 100644 index 0000000..9f55693 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/.travis.yml @@ -0,0 +1,12 @@ +language: go + +go: + - 1.4 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - tip + +go_import_path: gopkg.in/yaml.v2 diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml new file mode 100644 index 0000000..8da58fb --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml @@ -0,0 +1,31 @@ +The following files were ported to Go from C files of libyaml, and thus +are still covered by their original copyright and license: + + apic.go + emitterc.go + parserc.go + readerc.go + scannerc.go + writerc.go + yamlh.go + yamlprivateh.go + +Copyright (c) 2006 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/gopkg.in/yaml.v2/NOTICE b/vendor/gopkg.in/yaml.v2/NOTICE new file mode 100644 index 0000000..866d74a --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/NOTICE @@ -0,0 +1,13 @@ +Copyright 2011-2016 Canonical Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v2/README.md new file mode 100644 index 0000000..b50c6e8 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/README.md @@ -0,0 +1,133 @@ +# YAML support for the Go language + +Introduction +------------ + +The yaml package enables Go programs to comfortably encode and decode YAML +values. It was developed within [Canonical](https://www.canonical.com) as +part of the [juju](https://juju.ubuntu.com) project, and is based on a +pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) +C library to parse and generate YAML data quickly and reliably. + +Compatibility +------------- + +The yaml package supports most of YAML 1.1 and 1.2, including support for +anchors, tags, map merging, etc. Multi-document unmarshalling is not yet +implemented, and base-60 floats from YAML 1.1 are purposefully not +supported since they're a poor design and are gone in YAML 1.2. + +Installation and usage +---------------------- + +The import path for the package is *gopkg.in/yaml.v2*. + +To install it, run: + + go get gopkg.in/yaml.v2 + +API documentation +----------------- + +If opened in a browser, the import path itself leads to the API documentation: + + * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) + +API stability +------------- + +The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). + + +License +------- + +The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details. + + +Example +------- + +```Go +package main + +import ( + "fmt" + "log" + + "gopkg.in/yaml.v2" +) + +var data = ` +a: Easy! +b: + c: 2 + d: [3, 4] +` + +// Note: struct fields must be public in order for unmarshal to +// correctly populate the data. +type T struct { + A string + B struct { + RenamedC int `yaml:"c"` + D []int `yaml:",flow"` + } +} + +func main() { + t := T{} + + err := yaml.Unmarshal([]byte(data), &t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t:\n%v\n\n", t) + + d, err := yaml.Marshal(&t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t dump:\n%s\n\n", string(d)) + + m := make(map[interface{}]interface{}) + + err = yaml.Unmarshal([]byte(data), &m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m:\n%v\n\n", m) + + d, err = yaml.Marshal(&m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m dump:\n%s\n\n", string(d)) +} +``` + +This example will generate the following output: + +``` +--- t: +{Easy! {2 [3 4]}} + +--- t dump: +a: Easy! +b: + c: 2 + d: [3, 4] + + +--- m: +map[a:Easy! b:map[c:2 d:[3 4]]] + +--- m dump: +a: Easy! +b: + c: 2 + d: + - 3 + - 4 +``` + diff --git a/vendor/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v2/apic.go new file mode 100644 index 0000000..1f7e87e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/apic.go @@ -0,0 +1,739 @@ +package yaml + +import ( + "io" +) + +func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { + //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) + + // Check if we can move the queue at the beginning of the buffer. + if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { + if parser.tokens_head != len(parser.tokens) { + copy(parser.tokens, parser.tokens[parser.tokens_head:]) + } + parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] + parser.tokens_head = 0 + } + parser.tokens = append(parser.tokens, *token) + if pos < 0 { + return + } + copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) + parser.tokens[parser.tokens_head+pos] = *token +} + +// Create a new parser object. +func yaml_parser_initialize(parser *yaml_parser_t) bool { + *parser = yaml_parser_t{ + raw_buffer: make([]byte, 0, input_raw_buffer_size), + buffer: make([]byte, 0, input_buffer_size), + } + return true +} + +// Destroy a parser object. +func yaml_parser_delete(parser *yaml_parser_t) { + *parser = yaml_parser_t{} +} + +// String read handler. +func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + if parser.input_pos == len(parser.input) { + return 0, io.EOF + } + n = copy(buffer, parser.input[parser.input_pos:]) + parser.input_pos += n + return n, nil +} + +// Reader read handler. +func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + return parser.input_reader.Read(buffer) +} + +// Set a string input. +func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_string_read_handler + parser.input = input + parser.input_pos = 0 +} + +// Set a file input. +func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_reader_read_handler + parser.input_reader = r +} + +// Set the source encoding. +func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { + if parser.encoding != yaml_ANY_ENCODING { + panic("must set the encoding only once") + } + parser.encoding = encoding +} + +// Create a new emitter object. +func yaml_emitter_initialize(emitter *yaml_emitter_t) { + *emitter = yaml_emitter_t{ + buffer: make([]byte, output_buffer_size), + raw_buffer: make([]byte, 0, output_raw_buffer_size), + states: make([]yaml_emitter_state_t, 0, initial_stack_size), + events: make([]yaml_event_t, 0, initial_queue_size), + } +} + +// Destroy an emitter object. +func yaml_emitter_delete(emitter *yaml_emitter_t) { + *emitter = yaml_emitter_t{} +} + +// String write handler. +func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + *emitter.output_buffer = append(*emitter.output_buffer, buffer...) + return nil +} + +// yaml_writer_write_handler uses emitter.output_writer to write the +// emitted text. +func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + _, err := emitter.output_writer.Write(buffer) + return err +} + +// Set a string output. +func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_string_write_handler + emitter.output_buffer = output_buffer +} + +// Set a file output. +func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_writer_write_handler + emitter.output_writer = w +} + +// Set the output encoding. +func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { + if emitter.encoding != yaml_ANY_ENCODING { + panic("must set the output encoding only once") + } + emitter.encoding = encoding +} + +// Set the canonical output style. +func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { + emitter.canonical = canonical +} + +//// Set the indentation increment. +func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { + if indent < 2 || indent > 9 { + indent = 2 + } + emitter.best_indent = indent +} + +// Set the preferred line width. +func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { + if width < 0 { + width = -1 + } + emitter.best_width = width +} + +// Set if unescaped non-ASCII characters are allowed. +func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { + emitter.unicode = unicode +} + +// Set the preferred line break character. +func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { + emitter.line_break = line_break +} + +///* +// * Destroy a token object. +// */ +// +//YAML_DECLARE(void) +//yaml_token_delete(yaml_token_t *token) +//{ +// assert(token); // Non-NULL token object expected. +// +// switch (token.type) +// { +// case YAML_TAG_DIRECTIVE_TOKEN: +// yaml_free(token.data.tag_directive.handle); +// yaml_free(token.data.tag_directive.prefix); +// break; +// +// case YAML_ALIAS_TOKEN: +// yaml_free(token.data.alias.value); +// break; +// +// case YAML_ANCHOR_TOKEN: +// yaml_free(token.data.anchor.value); +// break; +// +// case YAML_TAG_TOKEN: +// yaml_free(token.data.tag.handle); +// yaml_free(token.data.tag.suffix); +// break; +// +// case YAML_SCALAR_TOKEN: +// yaml_free(token.data.scalar.value); +// break; +// +// default: +// break; +// } +// +// memset(token, 0, sizeof(yaml_token_t)); +//} +// +///* +// * Check if a string is a valid UTF-8 sequence. +// * +// * Check 'reader.c' for more details on UTF-8 encoding. +// */ +// +//static int +//yaml_check_utf8(yaml_char_t *start, size_t length) +//{ +// yaml_char_t *end = start+length; +// yaml_char_t *pointer = start; +// +// while (pointer < end) { +// unsigned char octet; +// unsigned int width; +// unsigned int value; +// size_t k; +// +// octet = pointer[0]; +// width = (octet & 0x80) == 0x00 ? 1 : +// (octet & 0xE0) == 0xC0 ? 2 : +// (octet & 0xF0) == 0xE0 ? 3 : +// (octet & 0xF8) == 0xF0 ? 4 : 0; +// value = (octet & 0x80) == 0x00 ? octet & 0x7F : +// (octet & 0xE0) == 0xC0 ? octet & 0x1F : +// (octet & 0xF0) == 0xE0 ? octet & 0x0F : +// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; +// if (!width) return 0; +// if (pointer+width > end) return 0; +// for (k = 1; k < width; k ++) { +// octet = pointer[k]; +// if ((octet & 0xC0) != 0x80) return 0; +// value = (value << 6) + (octet & 0x3F); +// } +// if (!((width == 1) || +// (width == 2 && value >= 0x80) || +// (width == 3 && value >= 0x800) || +// (width == 4 && value >= 0x10000))) return 0; +// +// pointer += width; +// } +// +// return 1; +//} +// + +// Create STREAM-START. +func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + encoding: encoding, + } +} + +// Create STREAM-END. +func yaml_stream_end_event_initialize(event *yaml_event_t) { + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + } +} + +// Create DOCUMENT-START. +func yaml_document_start_event_initialize( + event *yaml_event_t, + version_directive *yaml_version_directive_t, + tag_directives []yaml_tag_directive_t, + implicit bool, +) { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: implicit, + } +} + +// Create DOCUMENT-END. +func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + implicit: implicit, + } +} + +///* +// * Create ALIAS. +// */ +// +//YAML_DECLARE(int) +//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) +//{ +// mark yaml_mark_t = { 0, 0, 0 } +// anchor_copy *yaml_char_t = NULL +// +// assert(event) // Non-NULL event object is expected. +// assert(anchor) // Non-NULL anchor is expected. +// +// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 +// +// anchor_copy = yaml_strdup(anchor) +// if (!anchor_copy) +// return 0 +// +// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) +// +// return 1 +//} + +// Create SCALAR. +func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + anchor: anchor, + tag: tag, + value: value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-START. +func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-END. +func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + } + return true +} + +// Create MAPPING-START. +func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } +} + +// Create MAPPING-END. +func yaml_mapping_end_event_initialize(event *yaml_event_t) { + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + } +} + +// Destroy an event object. +func yaml_event_delete(event *yaml_event_t) { + *event = yaml_event_t{} +} + +///* +// * Create a document object. +// */ +// +//YAML_DECLARE(int) +//yaml_document_initialize(document *yaml_document_t, +// version_directive *yaml_version_directive_t, +// tag_directives_start *yaml_tag_directive_t, +// tag_directives_end *yaml_tag_directive_t, +// start_implicit int, end_implicit int) +//{ +// struct { +// error yaml_error_type_t +// } context +// struct { +// start *yaml_node_t +// end *yaml_node_t +// top *yaml_node_t +// } nodes = { NULL, NULL, NULL } +// version_directive_copy *yaml_version_directive_t = NULL +// struct { +// start *yaml_tag_directive_t +// end *yaml_tag_directive_t +// top *yaml_tag_directive_t +// } tag_directives_copy = { NULL, NULL, NULL } +// value yaml_tag_directive_t = { NULL, NULL } +// mark yaml_mark_t = { 0, 0, 0 } +// +// assert(document) // Non-NULL document object is expected. +// assert((tag_directives_start && tag_directives_end) || +// (tag_directives_start == tag_directives_end)) +// // Valid tag directives are expected. +// +// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error +// +// if (version_directive) { +// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) +// if (!version_directive_copy) goto error +// version_directive_copy.major = version_directive.major +// version_directive_copy.minor = version_directive.minor +// } +// +// if (tag_directives_start != tag_directives_end) { +// tag_directive *yaml_tag_directive_t +// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) +// goto error +// for (tag_directive = tag_directives_start +// tag_directive != tag_directives_end; tag_directive ++) { +// assert(tag_directive.handle) +// assert(tag_directive.prefix) +// if (!yaml_check_utf8(tag_directive.handle, +// strlen((char *)tag_directive.handle))) +// goto error +// if (!yaml_check_utf8(tag_directive.prefix, +// strlen((char *)tag_directive.prefix))) +// goto error +// value.handle = yaml_strdup(tag_directive.handle) +// value.prefix = yaml_strdup(tag_directive.prefix) +// if (!value.handle || !value.prefix) goto error +// if (!PUSH(&context, tag_directives_copy, value)) +// goto error +// value.handle = NULL +// value.prefix = NULL +// } +// } +// +// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, +// tag_directives_copy.start, tag_directives_copy.top, +// start_implicit, end_implicit, mark, mark) +// +// return 1 +// +//error: +// STACK_DEL(&context, nodes) +// yaml_free(version_directive_copy) +// while (!STACK_EMPTY(&context, tag_directives_copy)) { +// value yaml_tag_directive_t = POP(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// } +// STACK_DEL(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// +// return 0 +//} +// +///* +// * Destroy a document object. +// */ +// +//YAML_DECLARE(void) +//yaml_document_delete(document *yaml_document_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// tag_directive *yaml_tag_directive_t +// +// context.error = YAML_NO_ERROR // Eliminate a compiler warning. +// +// assert(document) // Non-NULL document object is expected. +// +// while (!STACK_EMPTY(&context, document.nodes)) { +// node yaml_node_t = POP(&context, document.nodes) +// yaml_free(node.tag) +// switch (node.type) { +// case YAML_SCALAR_NODE: +// yaml_free(node.data.scalar.value) +// break +// case YAML_SEQUENCE_NODE: +// STACK_DEL(&context, node.data.sequence.items) +// break +// case YAML_MAPPING_NODE: +// STACK_DEL(&context, node.data.mapping.pairs) +// break +// default: +// assert(0) // Should not happen. +// } +// } +// STACK_DEL(&context, document.nodes) +// +// yaml_free(document.version_directive) +// for (tag_directive = document.tag_directives.start +// tag_directive != document.tag_directives.end +// tag_directive++) { +// yaml_free(tag_directive.handle) +// yaml_free(tag_directive.prefix) +// } +// yaml_free(document.tag_directives.start) +// +// memset(document, 0, sizeof(yaml_document_t)) +//} +// +///** +// * Get a document node. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_node(document *yaml_document_t, index int) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (index > 0 && document.nodes.start + index <= document.nodes.top) { +// return document.nodes.start + index - 1 +// } +// return NULL +//} +// +///** +// * Get the root object. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_root_node(document *yaml_document_t) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (document.nodes.top != document.nodes.start) { +// return document.nodes.start +// } +// return NULL +//} +// +///* +// * Add a scalar node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_scalar(document *yaml_document_t, +// tag *yaml_char_t, value *yaml_char_t, length int, +// style yaml_scalar_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// value_copy *yaml_char_t = NULL +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// assert(value) // Non-NULL value is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (length < 0) { +// length = strlen((char *)value) +// } +// +// if (!yaml_check_utf8(value, length)) goto error +// value_copy = yaml_malloc(length+1) +// if (!value_copy) goto error +// memcpy(value_copy, value, length) +// value_copy[length] = '\0' +// +// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// yaml_free(tag_copy) +// yaml_free(value_copy) +// +// return 0 +//} +// +///* +// * Add a sequence node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_sequence(document *yaml_document_t, +// tag *yaml_char_t, style yaml_sequence_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_item_t +// end *yaml_node_item_t +// top *yaml_node_item_t +// } items = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error +// +// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, items) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Add a mapping node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_mapping(document *yaml_document_t, +// tag *yaml_char_t, style yaml_mapping_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_pair_t +// end *yaml_node_pair_t +// top *yaml_node_pair_t +// } pairs = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error +// +// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, pairs) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Append an item to a sequence node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_sequence_item(document *yaml_document_t, +// sequence int, item int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// assert(document) // Non-NULL document is required. +// assert(sequence > 0 +// && document.nodes.start + sequence <= document.nodes.top) +// // Valid sequence id is required. +// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) +// // A sequence node is required. +// assert(item > 0 && document.nodes.start + item <= document.nodes.top) +// // Valid item id is required. +// +// if (!PUSH(&context, +// document.nodes.start[sequence-1].data.sequence.items, item)) +// return 0 +// +// return 1 +//} +// +///* +// * Append a pair of a key and a value to a mapping node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_mapping_pair(document *yaml_document_t, +// mapping int, key int, value int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// pair yaml_node_pair_t +// +// assert(document) // Non-NULL document is required. +// assert(mapping > 0 +// && document.nodes.start + mapping <= document.nodes.top) +// // Valid mapping id is required. +// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) +// // A mapping node is required. +// assert(key > 0 && document.nodes.start + key <= document.nodes.top) +// // Valid key id is required. +// assert(value > 0 && document.nodes.start + value <= document.nodes.top) +// // Valid value id is required. +// +// pair.key = key +// pair.value = value +// +// if (!PUSH(&context, +// document.nodes.start[mapping-1].data.mapping.pairs, pair)) +// return 0 +// +// return 1 +//} +// +// diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go new file mode 100644 index 0000000..5310876 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/decode.go @@ -0,0 +1,813 @@ +package yaml + +import ( + "encoding" + "encoding/base64" + "fmt" + "io" + "math" + "reflect" + "strconv" + "time" +) + +const ( + documentNode = 1 << iota + mappingNode + sequenceNode + scalarNode + aliasNode +) + +type node struct { + kind int + line, column int + tag string + // For an alias node, alias holds the resolved alias. + alias *node + value string + implicit bool + children []*node + anchors map[string]*node +} + +// ---------------------------------------------------------------------------- +// Parser, produces a node tree out of a libyaml event stream. + +type parser struct { + parser yaml_parser_t + event yaml_event_t + doc *node + doneInit bool +} + +func newParser(b []byte) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + if len(b) == 0 { + b = []byte{'\n'} + } + yaml_parser_set_input_string(&p.parser, b) + return &p +} + +func newParserFromReader(r io.Reader) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + yaml_parser_set_input_reader(&p.parser, r) + return &p +} + +func (p *parser) init() { + if p.doneInit { + return + } + p.expect(yaml_STREAM_START_EVENT) + p.doneInit = true +} + +func (p *parser) destroy() { + if p.event.typ != yaml_NO_EVENT { + yaml_event_delete(&p.event) + } + yaml_parser_delete(&p.parser) +} + +// expect consumes an event from the event stream and +// checks that it's of the expected type. +func (p *parser) expect(e yaml_event_type_t) { + if p.event.typ == yaml_NO_EVENT { + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } + } + if p.event.typ == yaml_STREAM_END_EVENT { + failf("attempted to go past the end of stream; corrupted value?") + } + if p.event.typ != e { + p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) + p.fail() + } + yaml_event_delete(&p.event) + p.event.typ = yaml_NO_EVENT +} + +// peek peeks at the next event in the event stream, +// puts the results into p.event and returns the event type. +func (p *parser) peek() yaml_event_type_t { + if p.event.typ != yaml_NO_EVENT { + return p.event.typ + } + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } + return p.event.typ +} + +func (p *parser) fail() { + var where string + var line int + if p.parser.problem_mark.line != 0 { + line = p.parser.problem_mark.line + // Scanner errors don't iterate line before returning error + if p.parser.error == yaml_SCANNER_ERROR { + line++ + } + } else if p.parser.context_mark.line != 0 { + line = p.parser.context_mark.line + } + if line != 0 { + where = "line " + strconv.Itoa(line) + ": " + } + var msg string + if len(p.parser.problem) > 0 { + msg = p.parser.problem + } else { + msg = "unknown problem parsing YAML content" + } + failf("%s%s", where, msg) +} + +func (p *parser) anchor(n *node, anchor []byte) { + if anchor != nil { + p.doc.anchors[string(anchor)] = n + } +} + +func (p *parser) parse() *node { + p.init() + switch p.peek() { + case yaml_SCALAR_EVENT: + return p.scalar() + case yaml_ALIAS_EVENT: + return p.alias() + case yaml_MAPPING_START_EVENT: + return p.mapping() + case yaml_SEQUENCE_START_EVENT: + return p.sequence() + case yaml_DOCUMENT_START_EVENT: + return p.document() + case yaml_STREAM_END_EVENT: + // Happens when attempting to decode an empty buffer. + return nil + default: + panic("attempted to parse unknown event: " + p.event.typ.String()) + } +} + +func (p *parser) node(kind int) *node { + return &node{ + kind: kind, + line: p.event.start_mark.line, + column: p.event.start_mark.column, + } +} + +func (p *parser) document() *node { + n := p.node(documentNode) + n.anchors = make(map[string]*node) + p.doc = n + p.expect(yaml_DOCUMENT_START_EVENT) + n.children = append(n.children, p.parse()) + p.expect(yaml_DOCUMENT_END_EVENT) + return n +} + +func (p *parser) alias() *node { + n := p.node(aliasNode) + n.value = string(p.event.anchor) + n.alias = p.doc.anchors[n.value] + if n.alias == nil { + failf("unknown anchor '%s' referenced", n.value) + } + p.expect(yaml_ALIAS_EVENT) + return n +} + +func (p *parser) scalar() *node { + n := p.node(scalarNode) + n.value = string(p.event.value) + n.tag = string(p.event.tag) + n.implicit = p.event.implicit + p.anchor(n, p.event.anchor) + p.expect(yaml_SCALAR_EVENT) + return n +} + +func (p *parser) sequence() *node { + n := p.node(sequenceNode) + p.anchor(n, p.event.anchor) + p.expect(yaml_SEQUENCE_START_EVENT) + for p.peek() != yaml_SEQUENCE_END_EVENT { + n.children = append(n.children, p.parse()) + } + p.expect(yaml_SEQUENCE_END_EVENT) + return n +} + +func (p *parser) mapping() *node { + n := p.node(mappingNode) + p.anchor(n, p.event.anchor) + p.expect(yaml_MAPPING_START_EVENT) + for p.peek() != yaml_MAPPING_END_EVENT { + n.children = append(n.children, p.parse(), p.parse()) + } + p.expect(yaml_MAPPING_END_EVENT) + return n +} + +// ---------------------------------------------------------------------------- +// Decoder, unmarshals a node into a provided value. + +type decoder struct { + doc *node + aliases map[*node]bool + mapType reflect.Type + terrors []string + strict bool + + decodeCount int + aliasCount int + aliasDepth int +} + +var ( + mapItemType = reflect.TypeOf(MapItem{}) + durationType = reflect.TypeOf(time.Duration(0)) + defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) + ifaceType = defaultMapType.Elem() + timeType = reflect.TypeOf(time.Time{}) + ptrTimeType = reflect.TypeOf(&time.Time{}) +) + +func newDecoder(strict bool) *decoder { + d := &decoder{mapType: defaultMapType, strict: strict} + d.aliases = make(map[*node]bool) + return d +} + +func (d *decoder) terror(n *node, tag string, out reflect.Value) { + if n.tag != "" { + tag = n.tag + } + value := n.value + if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { + if len(value) > 10 { + value = " `" + value[:7] + "...`" + } else { + value = " `" + value + "`" + } + } + d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) +} + +func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { + terrlen := len(d.terrors) + err := u.UnmarshalYAML(func(v interface{}) (err error) { + defer handleErr(&err) + d.unmarshal(n, reflect.ValueOf(v)) + if len(d.terrors) > terrlen { + issues := d.terrors[terrlen:] + d.terrors = d.terrors[:terrlen] + return &TypeError{issues} + } + return nil + }) + if e, ok := err.(*TypeError); ok { + d.terrors = append(d.terrors, e.Errors...) + return false + } + if err != nil { + fail(err) + } + return true +} + +// d.prepare initializes and dereferences pointers and calls UnmarshalYAML +// if a value is found to implement it. +// It returns the initialized and dereferenced out value, whether +// unmarshalling was already done by UnmarshalYAML, and if so whether +// its types unmarshalled appropriately. +// +// If n holds a null value, prepare returns before doing anything. +func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { + if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "~" || n.value == "" && n.implicit) { + return out, false, false + } + again := true + for again { + again = false + if out.Kind() == reflect.Ptr { + if out.IsNil() { + out.Set(reflect.New(out.Type().Elem())) + } + out = out.Elem() + again = true + } + if out.CanAddr() { + if u, ok := out.Addr().Interface().(Unmarshaler); ok { + good = d.callUnmarshaler(n, u) + return out, true, good + } + } + } + return out, false, false +} + +const ( + // 400,000 decode operations is ~500kb of dense object declarations, or ~5kb of dense object declarations with 10000% alias expansion + alias_ratio_range_low = 400000 + // 4,000,000 decode operations is ~5MB of dense object declarations, or ~4.5MB of dense object declarations with 10% alias expansion + alias_ratio_range_high = 4000000 + // alias_ratio_range is the range over which we scale allowed alias ratios + alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) +) + +func allowedAliasRatio(decodeCount int) float64 { + switch { + case decodeCount <= alias_ratio_range_low: + // allow 99% to come from alias expansion for small-to-medium documents + return 0.99 + case decodeCount >= alias_ratio_range_high: + // allow 10% to come from alias expansion for very large documents + return 0.10 + default: + // scale smoothly from 99% down to 10% over the range. + // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. + // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). + return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) + } +} + +func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { + d.decodeCount++ + if d.aliasDepth > 0 { + d.aliasCount++ + } + if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { + failf("document contains excessive aliasing") + } + switch n.kind { + case documentNode: + return d.document(n, out) + case aliasNode: + return d.alias(n, out) + } + out, unmarshaled, good := d.prepare(n, out) + if unmarshaled { + return good + } + switch n.kind { + case scalarNode: + good = d.scalar(n, out) + case mappingNode: + good = d.mapping(n, out) + case sequenceNode: + good = d.sequence(n, out) + default: + panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) + } + return good +} + +func (d *decoder) document(n *node, out reflect.Value) (good bool) { + if len(n.children) == 1 { + d.doc = n + d.unmarshal(n.children[0], out) + return true + } + return false +} + +func (d *decoder) alias(n *node, out reflect.Value) (good bool) { + if d.aliases[n] { + // TODO this could actually be allowed in some circumstances. + failf("anchor '%s' value contains itself", n.value) + } + d.aliases[n] = true + d.aliasDepth++ + good = d.unmarshal(n.alias, out) + d.aliasDepth-- + delete(d.aliases, n) + return good +} + +var zeroValue reflect.Value + +func resetMap(out reflect.Value) { + for _, k := range out.MapKeys() { + out.SetMapIndex(k, zeroValue) + } +} + +func (d *decoder) scalar(n *node, out reflect.Value) bool { + var tag string + var resolved interface{} + if n.tag == "" && !n.implicit { + tag = yaml_STR_TAG + resolved = n.value + } else { + tag, resolved = resolve(n.tag, n.value) + if tag == yaml_BINARY_TAG { + data, err := base64.StdEncoding.DecodeString(resolved.(string)) + if err != nil { + failf("!!binary value contains invalid base64 data") + } + resolved = string(data) + } + } + if resolved == nil { + if out.Kind() == reflect.Map && !out.CanAddr() { + resetMap(out) + } else { + out.Set(reflect.Zero(out.Type())) + } + return true + } + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + // We've resolved to exactly the type we want, so use that. + out.Set(resolvedv) + return true + } + // Perhaps we can use the value as a TextUnmarshaler to + // set its value. + if out.CanAddr() { + u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) + if ok { + var text []byte + if tag == yaml_BINARY_TAG { + text = []byte(resolved.(string)) + } else { + // We let any value be unmarshaled into TextUnmarshaler. + // That might be more lax than we'd like, but the + // TextUnmarshaler itself should bowl out any dubious values. + text = []byte(n.value) + } + err := u.UnmarshalText(text) + if err != nil { + fail(err) + } + return true + } + } + switch out.Kind() { + case reflect.String: + if tag == yaml_BINARY_TAG { + out.SetString(resolved.(string)) + return true + } + if resolved != nil { + out.SetString(n.value) + return true + } + case reflect.Interface: + if resolved == nil { + out.Set(reflect.Zero(out.Type())) + } else if tag == yaml_TIMESTAMP_TAG { + // It looks like a timestamp but for backward compatibility + // reasons we set it as a string, so that code that unmarshals + // timestamp-like values into interface{} will continue to + // see a string and not a time.Time. + // TODO(v3) Drop this. + out.Set(reflect.ValueOf(n.value)) + } else { + out.Set(reflect.ValueOf(resolved)) + } + return true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + switch resolved := resolved.(type) { + case int: + if !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case int64: + if !out.OverflowInt(resolved) { + out.SetInt(resolved) + return true + } + case uint64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case float64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case string: + if out.Type() == durationType { + d, err := time.ParseDuration(resolved) + if err == nil { + out.SetInt(int64(d)) + return true + } + } + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch resolved := resolved.(type) { + case int: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case int64: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case uint64: + if !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case float64: + if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + } + case reflect.Bool: + switch resolved := resolved.(type) { + case bool: + out.SetBool(resolved) + return true + } + case reflect.Float32, reflect.Float64: + switch resolved := resolved.(type) { + case int: + out.SetFloat(float64(resolved)) + return true + case int64: + out.SetFloat(float64(resolved)) + return true + case uint64: + out.SetFloat(float64(resolved)) + return true + case float64: + out.SetFloat(resolved) + return true + } + case reflect.Struct: + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + out.Set(resolvedv) + return true + } + case reflect.Ptr: + if out.Type().Elem() == reflect.TypeOf(resolved) { + // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? + elem := reflect.New(out.Type().Elem()) + elem.Elem().Set(reflect.ValueOf(resolved)) + out.Set(elem) + return true + } + } + d.terror(n, tag, out) + return false +} + +func settableValueOf(i interface{}) reflect.Value { + v := reflect.ValueOf(i) + sv := reflect.New(v.Type()).Elem() + sv.Set(v) + return sv +} + +func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { + l := len(n.children) + + var iface reflect.Value + switch out.Kind() { + case reflect.Slice: + out.Set(reflect.MakeSlice(out.Type(), l, l)) + case reflect.Array: + if l != out.Len() { + failf("invalid array: want %d elements but got %d", out.Len(), l) + } + case reflect.Interface: + // No type hints. Will have to use a generic sequence. + iface = out + out = settableValueOf(make([]interface{}, l)) + default: + d.terror(n, yaml_SEQ_TAG, out) + return false + } + et := out.Type().Elem() + + j := 0 + for i := 0; i < l; i++ { + e := reflect.New(et).Elem() + if ok := d.unmarshal(n.children[i], e); ok { + out.Index(j).Set(e) + j++ + } + } + if out.Kind() != reflect.Array { + out.Set(out.Slice(0, j)) + } + if iface.IsValid() { + iface.Set(out) + } + return true +} + +func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { + switch out.Kind() { + case reflect.Struct: + return d.mappingStruct(n, out) + case reflect.Slice: + return d.mappingSlice(n, out) + case reflect.Map: + // okay + case reflect.Interface: + if d.mapType.Kind() == reflect.Map { + iface := out + out = reflect.MakeMap(d.mapType) + iface.Set(out) + } else { + slicev := reflect.New(d.mapType).Elem() + if !d.mappingSlice(n, slicev) { + return false + } + out.Set(slicev) + return true + } + default: + d.terror(n, yaml_MAP_TAG, out) + return false + } + outt := out.Type() + kt := outt.Key() + et := outt.Elem() + + mapType := d.mapType + if outt.Key() == ifaceType && outt.Elem() == ifaceType { + d.mapType = outt + } + + if out.IsNil() { + out.Set(reflect.MakeMap(outt)) + } + l := len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + k := reflect.New(kt).Elem() + if d.unmarshal(n.children[i], k) { + kkind := k.Kind() + if kkind == reflect.Interface { + kkind = k.Elem().Kind() + } + if kkind == reflect.Map || kkind == reflect.Slice { + failf("invalid map key: %#v", k.Interface()) + } + e := reflect.New(et).Elem() + if d.unmarshal(n.children[i+1], e) { + d.setMapIndex(n.children[i+1], out, k, e) + } + } + } + d.mapType = mapType + return true +} + +func (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) { + if d.strict && out.MapIndex(k) != zeroValue { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: key %#v already set in map", n.line+1, k.Interface())) + return + } + out.SetMapIndex(k, v) +} + +func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { + outt := out.Type() + if outt.Elem() != mapItemType { + d.terror(n, yaml_MAP_TAG, out) + return false + } + + mapType := d.mapType + d.mapType = outt + + var slice []MapItem + var l = len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + item := MapItem{} + k := reflect.ValueOf(&item.Key).Elem() + if d.unmarshal(n.children[i], k) { + v := reflect.ValueOf(&item.Value).Elem() + if d.unmarshal(n.children[i+1], v) { + slice = append(slice, item) + } + } + } + out.Set(reflect.ValueOf(slice)) + d.mapType = mapType + return true +} + +func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { + sinfo, err := getStructInfo(out.Type()) + if err != nil { + panic(err) + } + name := settableValueOf("") + l := len(n.children) + + var inlineMap reflect.Value + var elemType reflect.Type + if sinfo.InlineMap != -1 { + inlineMap = out.Field(sinfo.InlineMap) + inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) + elemType = inlineMap.Type().Elem() + } + + var doneFields []bool + if d.strict { + doneFields = make([]bool, len(sinfo.FieldsList)) + } + for i := 0; i < l; i += 2 { + ni := n.children[i] + if isMerge(ni) { + d.merge(n.children[i+1], out) + continue + } + if !d.unmarshal(ni, name) { + continue + } + if info, ok := sinfo.FieldsMap[name.String()]; ok { + if d.strict { + if doneFields[info.Id] { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.line+1, name.String(), out.Type())) + continue + } + doneFields[info.Id] = true + } + var field reflect.Value + if info.Inline == nil { + field = out.Field(info.Num) + } else { + field = out.FieldByIndex(info.Inline) + } + d.unmarshal(n.children[i+1], field) + } else if sinfo.InlineMap != -1 { + if inlineMap.IsNil() { + inlineMap.Set(reflect.MakeMap(inlineMap.Type())) + } + value := reflect.New(elemType).Elem() + d.unmarshal(n.children[i+1], value) + d.setMapIndex(n.children[i+1], inlineMap, name, value) + } else if d.strict { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.line+1, name.String(), out.Type())) + } + } + return true +} + +func failWantMap() { + failf("map merge requires map or sequence of maps as the value") +} + +func (d *decoder) merge(n *node, out reflect.Value) { + switch n.kind { + case mappingNode: + d.unmarshal(n, out) + case aliasNode: + an, ok := d.doc.anchors[n.value] + if ok && an.kind != mappingNode { + failWantMap() + } + d.unmarshal(n, out) + case sequenceNode: + // Step backwards as earlier nodes take precedence. + for i := len(n.children) - 1; i >= 0; i-- { + ni := n.children[i] + if ni.kind == aliasNode { + an, ok := d.doc.anchors[ni.value] + if ok && an.kind != mappingNode { + failWantMap() + } + } else if ni.kind != mappingNode { + failWantMap() + } + d.unmarshal(ni, out) + } + default: + failWantMap() + } +} + +func isMerge(n *node) bool { + return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) +} diff --git a/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go new file mode 100644 index 0000000..a1c2cc5 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/emitterc.go @@ -0,0 +1,1685 @@ +package yaml + +import ( + "bytes" + "fmt" +) + +// Flush the buffer if needed. +func flush(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) { + return yaml_emitter_flush(emitter) + } + return true +} + +// Put a character to the output buffer. +func put(emitter *yaml_emitter_t, value byte) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + emitter.buffer[emitter.buffer_pos] = value + emitter.buffer_pos++ + emitter.column++ + return true +} + +// Put a line break to the output buffer. +func put_break(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + switch emitter.line_break { + case yaml_CR_BREAK: + emitter.buffer[emitter.buffer_pos] = '\r' + emitter.buffer_pos += 1 + case yaml_LN_BREAK: + emitter.buffer[emitter.buffer_pos] = '\n' + emitter.buffer_pos += 1 + case yaml_CRLN_BREAK: + emitter.buffer[emitter.buffer_pos+0] = '\r' + emitter.buffer[emitter.buffer_pos+1] = '\n' + emitter.buffer_pos += 2 + default: + panic("unknown line break setting") + } + emitter.column = 0 + emitter.line++ + return true +} + +// Copy a character from a string into buffer. +func write(emitter *yaml_emitter_t, s []byte, i *int) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + p := emitter.buffer_pos + w := width(s[*i]) + switch w { + case 4: + emitter.buffer[p+3] = s[*i+3] + fallthrough + case 3: + emitter.buffer[p+2] = s[*i+2] + fallthrough + case 2: + emitter.buffer[p+1] = s[*i+1] + fallthrough + case 1: + emitter.buffer[p+0] = s[*i+0] + default: + panic("unknown character width") + } + emitter.column++ + emitter.buffer_pos += w + *i += w + return true +} + +// Write a whole string into buffer. +func write_all(emitter *yaml_emitter_t, s []byte) bool { + for i := 0; i < len(s); { + if !write(emitter, s, &i) { + return false + } + } + return true +} + +// Copy a line break character from a string into buffer. +func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { + if s[*i] == '\n' { + if !put_break(emitter) { + return false + } + *i++ + } else { + if !write(emitter, s, i) { + return false + } + emitter.column = 0 + emitter.line++ + } + return true +} + +// Set an emitter error and return false. +func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_EMITTER_ERROR + emitter.problem = problem + return false +} + +// Emit an event. +func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.events = append(emitter.events, *event) + for !yaml_emitter_need_more_events(emitter) { + event := &emitter.events[emitter.events_head] + if !yaml_emitter_analyze_event(emitter, event) { + return false + } + if !yaml_emitter_state_machine(emitter, event) { + return false + } + yaml_event_delete(event) + emitter.events_head++ + } + return true +} + +// Check if we need to accumulate more events before emitting. +// +// We accumulate extra +// - 1 event for DOCUMENT-START +// - 2 events for SEQUENCE-START +// - 3 events for MAPPING-START +// +func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { + if emitter.events_head == len(emitter.events) { + return true + } + var accumulate int + switch emitter.events[emitter.events_head].typ { + case yaml_DOCUMENT_START_EVENT: + accumulate = 1 + break + case yaml_SEQUENCE_START_EVENT: + accumulate = 2 + break + case yaml_MAPPING_START_EVENT: + accumulate = 3 + break + default: + return false + } + if len(emitter.events)-emitter.events_head > accumulate { + return false + } + var level int + for i := emitter.events_head; i < len(emitter.events); i++ { + switch emitter.events[i].typ { + case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: + level++ + case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: + level-- + } + if level == 0 { + return false + } + } + return true +} + +// Append a directive to the directives stack. +func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { + for i := 0; i < len(emitter.tag_directives); i++ { + if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") + } + } + + // [Go] Do we actually need to copy this given garbage collection + // and the lack of deallocating destructors? + tag_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(tag_copy.handle, value.handle) + copy(tag_copy.prefix, value.prefix) + emitter.tag_directives = append(emitter.tag_directives, tag_copy) + return true +} + +// Increase the indentation level. +func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { + emitter.indents = append(emitter.indents, emitter.indent) + if emitter.indent < 0 { + if flow { + emitter.indent = emitter.best_indent + } else { + emitter.indent = 0 + } + } else if !indentless { + emitter.indent += emitter.best_indent + } + return true +} + +// State dispatcher. +func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { + switch emitter.state { + default: + case yaml_EMIT_STREAM_START_STATE: + return yaml_emitter_emit_stream_start(emitter, event) + + case yaml_EMIT_FIRST_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, true) + + case yaml_EMIT_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, false) + + case yaml_EMIT_DOCUMENT_CONTENT_STATE: + return yaml_emitter_emit_document_content(emitter, event) + + case yaml_EMIT_DOCUMENT_END_STATE: + return yaml_emitter_emit_document_end(emitter, event) + + case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, true) + + case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, false) + + case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, true) + + case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, false) + + case yaml_EMIT_END_STATE: + return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") + } + panic("invalid emitter state") +} + +// Expect STREAM-START. +func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_STREAM_START_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") + } + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = event.encoding + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = yaml_UTF8_ENCODING + } + } + if emitter.best_indent < 2 || emitter.best_indent > 9 { + emitter.best_indent = 2 + } + if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { + emitter.best_width = 80 + } + if emitter.best_width < 0 { + emitter.best_width = 1<<31 - 1 + } + if emitter.line_break == yaml_ANY_BREAK { + emitter.line_break = yaml_LN_BREAK + } + + emitter.indent = -1 + emitter.line = 0 + emitter.column = 0 + emitter.whitespace = true + emitter.indention = true + + if emitter.encoding != yaml_UTF8_ENCODING { + if !yaml_emitter_write_bom(emitter) { + return false + } + } + emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE + return true +} + +// Expect DOCUMENT-START or STREAM-END. +func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + + if event.typ == yaml_DOCUMENT_START_EVENT { + + if event.version_directive != nil { + if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { + return false + } + } + + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { + return false + } + if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { + return false + } + } + + for i := 0; i < len(default_tag_directives); i++ { + tag_directive := &default_tag_directives[i] + if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { + return false + } + } + + implicit := event.implicit + if !first || emitter.canonical { + implicit = false + } + + if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if event.version_directive != nil { + implicit = false + if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if len(event.tag_directives) > 0 { + implicit = false + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { + return false + } + if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + if yaml_emitter_check_empty_document(emitter) { + implicit = false + } + if !implicit { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { + return false + } + if emitter.canonical { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE + return true + } + + if event.typ == yaml_STREAM_END_EVENT { + if emitter.open_ended { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_END_STATE + return true + } + + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") +} + +// Expect the root node. +func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) + return yaml_emitter_emit_node(emitter, event, true, false, false, false) +} + +// Expect DOCUMENT-END. +func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_DOCUMENT_END_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !event.implicit { + // [Go] Allocate the slice elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_DOCUMENT_START_STATE + emitter.tag_directives = emitter.tag_directives[:0] + return true +} + +// Expect a flow item node. +func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a flow key node. +func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_MAPPING_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a flow value node. +func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block item node. +func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { + return false + } + } + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a block key node. +func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, false) { + return false + } + } + if event.typ == yaml_MAPPING_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block value node. +func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a node. +func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, + root bool, sequence bool, mapping bool, simple_key bool) bool { + + emitter.root_context = root + emitter.sequence_context = sequence + emitter.mapping_context = mapping + emitter.simple_key_context = simple_key + + switch event.typ { + case yaml_ALIAS_EVENT: + return yaml_emitter_emit_alias(emitter, event) + case yaml_SCALAR_EVENT: + return yaml_emitter_emit_scalar(emitter, event) + case yaml_SEQUENCE_START_EVENT: + return yaml_emitter_emit_sequence_start(emitter, event) + case yaml_MAPPING_START_EVENT: + return yaml_emitter_emit_mapping_start(emitter, event) + default: + return yaml_emitter_set_emitter_error(emitter, + fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) + } +} + +// Expect ALIAS. +func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SCALAR. +func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_select_scalar_style(emitter, event) { + return false + } + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + if !yaml_emitter_process_scalar(emitter) { + return false + } + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SEQUENCE-START. +func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || + yaml_emitter_check_empty_sequence(emitter) { + emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE + } + return true +} + +// Expect MAPPING-START. +func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || + yaml_emitter_check_empty_mapping(emitter) { + emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE + } + return true +} + +// Check if the document content is an empty scalar. +func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { + return false // [Go] Huh? +} + +// Check if the next events represent an empty sequence. +func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT +} + +// Check if the next events represent an empty mapping. +func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT +} + +// Check if the next node can be expressed as a simple key. +func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { + length := 0 + switch emitter.events[emitter.events_head].typ { + case yaml_ALIAS_EVENT: + length += len(emitter.anchor_data.anchor) + case yaml_SCALAR_EVENT: + if emitter.scalar_data.multiline { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + + len(emitter.scalar_data.value) + case yaml_SEQUENCE_START_EVENT: + if !yaml_emitter_check_empty_sequence(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + case yaml_MAPPING_START_EVENT: + if !yaml_emitter_check_empty_mapping(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + default: + return false + } + return length <= 128 +} + +// Determine an acceptable scalar style. +func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 + if no_tag && !event.implicit && !event.quoted_implicit { + return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") + } + + style := event.scalar_style() + if style == yaml_ANY_SCALAR_STYLE { + style = yaml_PLAIN_SCALAR_STYLE + } + if emitter.canonical { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + if emitter.simple_key_context && emitter.scalar_data.multiline { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + + if style == yaml_PLAIN_SCALAR_STYLE { + if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || + emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if no_tag && !event.implicit { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { + if !emitter.scalar_data.single_quoted_allowed { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { + if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + + if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { + emitter.tag_data.handle = []byte{'!'} + } + emitter.scalar_data.style = style + return true +} + +// Write an anchor. +func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { + if emitter.anchor_data.anchor == nil { + return true + } + c := []byte{'&'} + if emitter.anchor_data.alias { + c[0] = '*' + } + if !yaml_emitter_write_indicator(emitter, c, true, false, false) { + return false + } + return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) +} + +// Write a tag. +func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { + if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { + return true + } + if len(emitter.tag_data.handle) > 0 { + if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { + return false + } + if len(emitter.tag_data.suffix) > 0 { + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + } + } else { + // [Go] Allocate these slices elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { + return false + } + } + return true +} + +// Write a scalar. +func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { + switch emitter.scalar_data.style { + case yaml_PLAIN_SCALAR_STYLE: + return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_SINGLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_DOUBLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_LITERAL_SCALAR_STYLE: + return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) + + case yaml_FOLDED_SCALAR_STYLE: + return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) + } + panic("unknown scalar style") +} + +// Check if a %YAML directive is valid. +func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { + if version_directive.major != 1 || version_directive.minor != 1 { + return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") + } + return true +} + +// Check if a %TAG directive is valid. +func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { + handle := tag_directive.handle + prefix := tag_directive.prefix + if len(handle) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") + } + if handle[0] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") + } + if handle[len(handle)-1] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") + } + for i := 1; i < len(handle)-1; i += width(handle[i]) { + if !is_alpha(handle, i) { + return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") + } + } + if len(prefix) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") + } + return true +} + +// Check if an anchor is valid. +func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { + if len(anchor) == 0 { + problem := "anchor value must not be empty" + if alias { + problem = "alias value must not be empty" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + for i := 0; i < len(anchor); i += width(anchor[i]) { + if !is_alpha(anchor, i) { + problem := "anchor value must contain alphanumerical characters only" + if alias { + problem = "alias value must contain alphanumerical characters only" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + } + emitter.anchor_data.anchor = anchor + emitter.anchor_data.alias = alias + return true +} + +// Check if a tag is valid. +func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { + if len(tag) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") + } + for i := 0; i < len(emitter.tag_directives); i++ { + tag_directive := &emitter.tag_directives[i] + if bytes.HasPrefix(tag, tag_directive.prefix) { + emitter.tag_data.handle = tag_directive.handle + emitter.tag_data.suffix = tag[len(tag_directive.prefix):] + return true + } + } + emitter.tag_data.suffix = tag + return true +} + +// Check if a scalar is valid. +func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { + var ( + block_indicators = false + flow_indicators = false + line_breaks = false + special_characters = false + + leading_space = false + leading_break = false + trailing_space = false + trailing_break = false + break_space = false + space_break = false + + preceded_by_whitespace = false + followed_by_whitespace = false + previous_space = false + previous_break = false + ) + + emitter.scalar_data.value = value + + if len(value) == 0 { + emitter.scalar_data.multiline = false + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = false + return true + } + + if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { + block_indicators = true + flow_indicators = true + } + + preceded_by_whitespace = true + for i, w := 0, 0; i < len(value); i += w { + w = width(value[i]) + followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) + + if i == 0 { + switch value[i] { + case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': + flow_indicators = true + block_indicators = true + case '?', ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '-': + if followed_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } else { + switch value[i] { + case ',', '?', '[', ']', '{', '}': + flow_indicators = true + case ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '#': + if preceded_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } + + if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { + special_characters = true + } + if is_space(value, i) { + if i == 0 { + leading_space = true + } + if i+width(value[i]) == len(value) { + trailing_space = true + } + if previous_break { + break_space = true + } + previous_space = true + previous_break = false + } else if is_break(value, i) { + line_breaks = true + if i == 0 { + leading_break = true + } + if i+width(value[i]) == len(value) { + trailing_break = true + } + if previous_space { + space_break = true + } + previous_space = false + previous_break = true + } else { + previous_space = false + previous_break = false + } + + // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. + preceded_by_whitespace = is_blankz(value, i) + } + + emitter.scalar_data.multiline = line_breaks + emitter.scalar_data.flow_plain_allowed = true + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = true + + if leading_space || leading_break || trailing_space || trailing_break { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if trailing_space { + emitter.scalar_data.block_allowed = false + } + if break_space { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + } + if space_break || special_characters { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + emitter.scalar_data.block_allowed = false + } + if line_breaks { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if flow_indicators { + emitter.scalar_data.flow_plain_allowed = false + } + if block_indicators { + emitter.scalar_data.block_plain_allowed = false + } + return true +} + +// Check if the event data is valid. +func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + emitter.anchor_data.anchor = nil + emitter.tag_data.handle = nil + emitter.tag_data.suffix = nil + emitter.scalar_data.value = nil + + switch event.typ { + case yaml_ALIAS_EVENT: + if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { + return false + } + + case yaml_SCALAR_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + if !yaml_emitter_analyze_scalar(emitter, event.value) { + return false + } + + case yaml_SEQUENCE_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + + case yaml_MAPPING_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + } + return true +} + +// Write the BOM character. +func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { + if !flush(emitter) { + return false + } + pos := emitter.buffer_pos + emitter.buffer[pos+0] = '\xEF' + emitter.buffer[pos+1] = '\xBB' + emitter.buffer[pos+2] = '\xBF' + emitter.buffer_pos += 3 + return true +} + +func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { + indent := emitter.indent + if indent < 0 { + indent = 0 + } + if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { + if !put_break(emitter) { + return false + } + } + for emitter.column < indent { + if !put(emitter, ' ') { + return false + } + } + emitter.whitespace = true + emitter.indention = true + return true +} + +func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, indicator) { + return false + } + emitter.whitespace = is_whitespace + emitter.indention = (emitter.indention && is_indention) + emitter.open_ended = false + return true +} + +func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + for i := 0; i < len(value); { + var must_write bool + switch value[i] { + case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': + must_write = true + default: + must_write = is_alpha(value, i) + } + if must_write { + if !write(emitter, value, &i) { + return false + } + } else { + w := width(value[i]) + for k := 0; k < w; k++ { + octet := value[i] + i++ + if !put(emitter, '%') { + return false + } + + c := octet >> 4 + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + + c = octet & 0x0f + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + } + } + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + + emitter.whitespace = false + emitter.indention = false + if emitter.root_context { + emitter.open_ended = true + } + + return true +} + +func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { + return false + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if value[i] == '\'' { + if !put(emitter, '\'') { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + spaces := false + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { + return false + } + + for i := 0; i < len(value); { + if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || + is_bom(value, i) || is_break(value, i) || + value[i] == '"' || value[i] == '\\' { + + octet := value[i] + + var w int + var v rune + switch { + case octet&0x80 == 0x00: + w, v = 1, rune(octet&0x7F) + case octet&0xE0 == 0xC0: + w, v = 2, rune(octet&0x1F) + case octet&0xF0 == 0xE0: + w, v = 3, rune(octet&0x0F) + case octet&0xF8 == 0xF0: + w, v = 4, rune(octet&0x07) + } + for k := 1; k < w; k++ { + octet = value[i+k] + v = (v << 6) + (rune(octet) & 0x3F) + } + i += w + + if !put(emitter, '\\') { + return false + } + + var ok bool + switch v { + case 0x00: + ok = put(emitter, '0') + case 0x07: + ok = put(emitter, 'a') + case 0x08: + ok = put(emitter, 'b') + case 0x09: + ok = put(emitter, 't') + case 0x0A: + ok = put(emitter, 'n') + case 0x0b: + ok = put(emitter, 'v') + case 0x0c: + ok = put(emitter, 'f') + case 0x0d: + ok = put(emitter, 'r') + case 0x1b: + ok = put(emitter, 'e') + case 0x22: + ok = put(emitter, '"') + case 0x5c: + ok = put(emitter, '\\') + case 0x85: + ok = put(emitter, 'N') + case 0xA0: + ok = put(emitter, '_') + case 0x2028: + ok = put(emitter, 'L') + case 0x2029: + ok = put(emitter, 'P') + default: + if v <= 0xFF { + ok = put(emitter, 'x') + w = 2 + } else if v <= 0xFFFF { + ok = put(emitter, 'u') + w = 4 + } else { + ok = put(emitter, 'U') + w = 8 + } + for k := (w - 1) * 4; ok && k >= 0; k -= 4 { + digit := byte((v >> uint(k)) & 0x0F) + if digit < 10 { + ok = put(emitter, digit+'0') + } else { + ok = put(emitter, digit+'A'-10) + } + } + } + if !ok { + return false + } + spaces = false + } else if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { + if !yaml_emitter_write_indent(emitter) { + return false + } + if is_space(value, i+1) { + if !put(emitter, '\\') { + return false + } + } + i += width(value[i]) + } else if !write(emitter, value, &i) { + return false + } + spaces = true + } else { + if !write(emitter, value, &i) { + return false + } + spaces = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { + if is_space(value, 0) || is_break(value, 0) { + indent_hint := []byte{'0' + byte(emitter.best_indent)} + if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { + return false + } + } + + emitter.open_ended = false + + var chomp_hint [1]byte + if len(value) == 0 { + chomp_hint[0] = '-' + } else { + i := len(value) - 1 + for value[i]&0xC0 == 0x80 { + i-- + } + if !is_break(value, i) { + chomp_hint[0] = '-' + } else if i == 0 { + chomp_hint[0] = '+' + emitter.open_ended = true + } else { + i-- + for value[i]&0xC0 == 0x80 { + i-- + } + if is_break(value, i) { + chomp_hint[0] = '+' + emitter.open_ended = true + } + } + } + if chomp_hint[0] != 0 { + if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { + return false + } + } + return true +} + +func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + breaks := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + breaks = false + } + } + + return true +} + +func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + + breaks := true + leading_spaces := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !breaks && !leading_spaces && value[i] == '\n' { + k := 0 + for is_break(value, k) { + k += width(value[k]) + } + if !is_blankz(value, k) { + if !put_break(emitter) { + return false + } + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + leading_spaces = is_blank(value, i) + } + if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + emitter.indention = false + breaks = false + } + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go new file mode 100644 index 0000000..0ee738e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/encode.go @@ -0,0 +1,390 @@ +package yaml + +import ( + "encoding" + "fmt" + "io" + "reflect" + "regexp" + "sort" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +// jsonNumber is the interface of the encoding/json.Number datatype. +// Repeating the interface here avoids a dependency on encoding/json, and also +// supports other libraries like jsoniter, which use a similar datatype with +// the same interface. Detecting this interface is useful when dealing with +// structures containing json.Number, which is a string under the hood. The +// encoder should prefer the use of Int64(), Float64() and string(), in that +// order, when encoding this type. +type jsonNumber interface { + Float64() (float64, error) + Int64() (int64, error) + String() string +} + +type encoder struct { + emitter yaml_emitter_t + event yaml_event_t + out []byte + flow bool + // doneInit holds whether the initial stream_start_event has been + // emitted. + doneInit bool +} + +func newEncoder() *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_string(&e.emitter, &e.out) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func newEncoderWithWriter(w io.Writer) *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_writer(&e.emitter, w) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func (e *encoder) init() { + if e.doneInit { + return + } + yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) + e.emit() + e.doneInit = true +} + +func (e *encoder) finish() { + e.emitter.open_ended = false + yaml_stream_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) destroy() { + yaml_emitter_delete(&e.emitter) +} + +func (e *encoder) emit() { + // This will internally delete the e.event value. + e.must(yaml_emitter_emit(&e.emitter, &e.event)) +} + +func (e *encoder) must(ok bool) { + if !ok { + msg := e.emitter.problem + if msg == "" { + msg = "unknown problem generating YAML content" + } + failf("%s", msg) + } +} + +func (e *encoder) marshalDoc(tag string, in reflect.Value) { + e.init() + yaml_document_start_event_initialize(&e.event, nil, nil, true) + e.emit() + e.marshal(tag, in) + yaml_document_end_event_initialize(&e.event, true) + e.emit() +} + +func (e *encoder) marshal(tag string, in reflect.Value) { + if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { + e.nilv() + return + } + iface := in.Interface() + switch m := iface.(type) { + case jsonNumber: + integer, err := m.Int64() + if err == nil { + // In this case the json.Number is a valid int64 + in = reflect.ValueOf(integer) + break + } + float, err := m.Float64() + if err == nil { + // In this case the json.Number is a valid float64 + in = reflect.ValueOf(float) + break + } + // fallback case - no number could be obtained + in = reflect.ValueOf(m.String()) + case time.Time, *time.Time: + // Although time.Time implements TextMarshaler, + // we don't want to treat it as a string for YAML + // purposes because YAML has special support for + // timestamps. + case Marshaler: + v, err := m.MarshalYAML() + if err != nil { + fail(err) + } + if v == nil { + e.nilv() + return + } + in = reflect.ValueOf(v) + case encoding.TextMarshaler: + text, err := m.MarshalText() + if err != nil { + fail(err) + } + in = reflect.ValueOf(string(text)) + case nil: + e.nilv() + return + } + switch in.Kind() { + case reflect.Interface: + e.marshal(tag, in.Elem()) + case reflect.Map: + e.mapv(tag, in) + case reflect.Ptr: + if in.Type() == ptrTimeType { + e.timev(tag, in.Elem()) + } else { + e.marshal(tag, in.Elem()) + } + case reflect.Struct: + if in.Type() == timeType { + e.timev(tag, in) + } else { + e.structv(tag, in) + } + case reflect.Slice, reflect.Array: + if in.Type().Elem() == mapItemType { + e.itemsv(tag, in) + } else { + e.slicev(tag, in) + } + case reflect.String: + e.stringv(tag, in) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if in.Type() == durationType { + e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) + } else { + e.intv(tag, in) + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + e.uintv(tag, in) + case reflect.Float32, reflect.Float64: + e.floatv(tag, in) + case reflect.Bool: + e.boolv(tag, in) + default: + panic("cannot marshal type: " + in.Type().String()) + } +} + +func (e *encoder) mapv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + keys := keyList(in.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + e.marshal("", k) + e.marshal("", in.MapIndex(k)) + } + }) +} + +func (e *encoder) itemsv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) + for _, item := range slice { + e.marshal("", reflect.ValueOf(item.Key)) + e.marshal("", reflect.ValueOf(item.Value)) + } + }) +} + +func (e *encoder) structv(tag string, in reflect.Value) { + sinfo, err := getStructInfo(in.Type()) + if err != nil { + panic(err) + } + e.mappingv(tag, func() { + for _, info := range sinfo.FieldsList { + var value reflect.Value + if info.Inline == nil { + value = in.Field(info.Num) + } else { + value = in.FieldByIndex(info.Inline) + } + if info.OmitEmpty && isZero(value) { + continue + } + e.marshal("", reflect.ValueOf(info.Key)) + e.flow = info.Flow + e.marshal("", value) + } + if sinfo.InlineMap >= 0 { + m := in.Field(sinfo.InlineMap) + if m.Len() > 0 { + e.flow = false + keys := keyList(m.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + if _, found := sinfo.FieldsMap[k.String()]; found { + panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) + } + e.marshal("", k) + e.flow = false + e.marshal("", m.MapIndex(k)) + } + } + } + }) +} + +func (e *encoder) mappingv(tag string, f func()) { + implicit := tag == "" + style := yaml_BLOCK_MAPPING_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_MAPPING_STYLE + } + yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) + e.emit() + f() + yaml_mapping_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) slicev(tag string, in reflect.Value) { + implicit := tag == "" + style := yaml_BLOCK_SEQUENCE_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_SEQUENCE_STYLE + } + e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) + e.emit() + n := in.Len() + for i := 0; i < n; i++ { + e.marshal("", in.Index(i)) + } + e.must(yaml_sequence_end_event_initialize(&e.event)) + e.emit() +} + +// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. +// +// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported +// in YAML 1.2 and by this package, but these should be marshalled quoted for +// the time being for compatibility with other parsers. +func isBase60Float(s string) (result bool) { + // Fast path. + if s == "" { + return false + } + c := s[0] + if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { + return false + } + // Do the full match. + return base60float.MatchString(s) +} + +// From http://yaml.org/type/float.html, except the regular expression there +// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. +var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) + +func (e *encoder) stringv(tag string, in reflect.Value) { + var style yaml_scalar_style_t + s := in.String() + canUsePlain := true + switch { + case !utf8.ValidString(s): + if tag == yaml_BINARY_TAG { + failf("explicitly tagged !!binary data must be base64-encoded") + } + if tag != "" { + failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) + } + // It can't be encoded directly as YAML so use a binary tag + // and encode it as base64. + tag = yaml_BINARY_TAG + s = encodeBase64(s) + case tag == "": + // Check to see if it would resolve to a specific + // tag when encoded unquoted. If it doesn't, + // there's no need to quote it. + rtag, _ := resolve("", s) + canUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s) + } + // Note: it's possible for user code to emit invalid YAML + // if they explicitly specify a tag and a string containing + // text that's incompatible with that tag. + switch { + case strings.Contains(s, "\n"): + style = yaml_LITERAL_SCALAR_STYLE + case canUsePlain: + style = yaml_PLAIN_SCALAR_STYLE + default: + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + e.emitScalar(s, "", tag, style) +} + +func (e *encoder) boolv(tag string, in reflect.Value) { + var s string + if in.Bool() { + s = "true" + } else { + s = "false" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) intv(tag string, in reflect.Value) { + s := strconv.FormatInt(in.Int(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) uintv(tag string, in reflect.Value) { + s := strconv.FormatUint(in.Uint(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) timev(tag string, in reflect.Value) { + t := in.Interface().(time.Time) + s := t.Format(time.RFC3339Nano) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) floatv(tag string, in reflect.Value) { + // Issue #352: When formatting, use the precision of the underlying value + precision := 64 + if in.Kind() == reflect.Float32 { + precision = 32 + } + + s := strconv.FormatFloat(in.Float(), 'g', -1, precision) + switch s { + case "+Inf": + s = ".inf" + case "-Inf": + s = "-.inf" + case "NaN": + s = ".nan" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) nilv() { + e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { + implicit := tag == "" + e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) + e.emit() +} diff --git a/vendor/gopkg.in/yaml.v2/go.mod b/vendor/gopkg.in/yaml.v2/go.mod new file mode 100644 index 0000000..1934e87 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/go.mod @@ -0,0 +1,5 @@ +module "gopkg.in/yaml.v2" + +require ( + "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405 +) diff --git a/vendor/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go new file mode 100644 index 0000000..81d05df --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/parserc.go @@ -0,0 +1,1095 @@ +package yaml + +import ( + "bytes" +) + +// The parser implements the following grammar: +// +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// implicit_document ::= block_node DOCUMENT-END* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// block_node_or_indentless_sequence ::= +// ALIAS +// | properties (block_content | indentless_block_sequence)? +// | block_content +// | indentless_block_sequence +// block_node ::= ALIAS +// | properties block_content? +// | block_content +// flow_node ::= ALIAS +// | properties flow_content? +// | flow_content +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// block_content ::= block_collection | flow_collection | SCALAR +// flow_content ::= flow_collection | SCALAR +// block_collection ::= block_sequence | block_mapping +// flow_collection ::= flow_sequence | flow_mapping +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// block_mapping ::= BLOCK-MAPPING_START +// ((KEY block_node_or_indentless_sequence?)? +// (VALUE block_node_or_indentless_sequence?)?)* +// BLOCK-END +// flow_sequence ::= FLOW-SEQUENCE-START +// (flow_sequence_entry FLOW-ENTRY)* +// flow_sequence_entry? +// FLOW-SEQUENCE-END +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// flow_mapping ::= FLOW-MAPPING-START +// (flow_mapping_entry FLOW-ENTRY)* +// flow_mapping_entry? +// FLOW-MAPPING-END +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + +// Peek the next token in the token queue. +func peek_token(parser *yaml_parser_t) *yaml_token_t { + if parser.token_available || yaml_parser_fetch_more_tokens(parser) { + return &parser.tokens[parser.tokens_head] + } + return nil +} + +// Remove the next token from the queue (must be called after peek_token). +func skip_token(parser *yaml_parser_t) { + parser.token_available = false + parser.tokens_parsed++ + parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN + parser.tokens_head++ +} + +// Get the next event. +func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { + // Erase the event object. + *event = yaml_event_t{} + + // No events after the end of the stream or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { + return true + } + + // Generate the next event. + return yaml_parser_state_machine(parser, event) +} + +// Set parser error. +func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +// State dispatcher. +func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { + //trace("yaml_parser_state_machine", "state:", parser.state.String()) + + switch parser.state { + case yaml_PARSE_STREAM_START_STATE: + return yaml_parser_parse_stream_start(parser, event) + + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, true) + + case yaml_PARSE_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, false) + + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return yaml_parser_parse_document_content(parser, event) + + case yaml_PARSE_DOCUMENT_END_STATE: + return yaml_parser_parse_document_end(parser, event) + + case yaml_PARSE_BLOCK_NODE_STATE: + return yaml_parser_parse_node(parser, event, true, false) + + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return yaml_parser_parse_node(parser, event, true, true) + + case yaml_PARSE_FLOW_NODE_STATE: + return yaml_parser_parse_node(parser, event, false, false) + + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, true) + + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, false) + + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_indentless_sequence_entry(parser, event) + + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, true) + + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, false) + + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return yaml_parser_parse_block_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, true) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, false) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) + + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, true) + + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, true) + + default: + panic("invalid parser state") + } +} + +// Parse the production: +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// ************ +func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_STREAM_START_TOKEN { + return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) + } + parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + encoding: token.encoding, + } + skip_token(parser) + return true +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// * +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// ************************* +func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { + + token := peek_token(parser) + if token == nil { + return false + } + + // Parse extra document end indicators. + if !implicit { + for token.typ == yaml_DOCUMENT_END_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && + token.typ != yaml_TAG_DIRECTIVE_TOKEN && + token.typ != yaml_DOCUMENT_START_TOKEN && + token.typ != yaml_STREAM_END_TOKEN { + // Parse an implicit document. + if !yaml_parser_process_directives(parser, nil, nil) { + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_BLOCK_NODE_STATE + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + } else if token.typ != yaml_STREAM_END_TOKEN { + // Parse an explicit document. + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + start_mark := token.start_mark + if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { + return false + } + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_DOCUMENT_START_TOKEN { + yaml_parser_set_parser_error(parser, + "did not find expected ", token.start_mark) + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE + end_mark := token.end_mark + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: false, + } + skip_token(parser) + + } else { + // Parse the stream end. + parser.state = yaml_PARSE_END_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + } + + return true +} + +// Parse the productions: +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// *********** +// +func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || + token.typ == yaml_TAG_DIRECTIVE_TOKEN || + token.typ == yaml_DOCUMENT_START_TOKEN || + token.typ == yaml_DOCUMENT_END_TOKEN || + token.typ == yaml_STREAM_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + return yaml_parser_process_empty_scalar(parser, event, + token.start_mark) + } + return yaml_parser_parse_node(parser, event, true, false) +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// ************* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// +func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + start_mark := token.start_mark + end_mark := token.start_mark + + implicit := true + if token.typ == yaml_DOCUMENT_END_TOKEN { + end_mark = token.end_mark + skip_token(parser) + implicit = false + } + + parser.tag_directives = parser.tag_directives[:0] + + parser.state = yaml_PARSE_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + start_mark: start_mark, + end_mark: end_mark, + implicit: implicit, + } + return true +} + +// Parse the productions: +// block_node_or_indentless_sequence ::= +// ALIAS +// ***** +// | properties (block_content | indentless_block_sequence)? +// ********** * +// | block_content | indentless_block_sequence +// * +// block_node ::= ALIAS +// ***** +// | properties block_content? +// ********** * +// | block_content +// * +// flow_node ::= ALIAS +// ***** +// | properties flow_content? +// ********** * +// | flow_content +// * +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// ************************* +// block_content ::= block_collection | flow_collection | SCALAR +// ****** +// flow_content ::= flow_collection | SCALAR +// ****** +func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { + //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_ALIAS_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + *event = yaml_event_t{ + typ: yaml_ALIAS_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + anchor: token.value, + } + skip_token(parser) + return true + } + + start_mark := token.start_mark + end_mark := token.start_mark + + var tag_token bool + var tag_handle, tag_suffix, anchor []byte + var tag_mark yaml_mark_t + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + start_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } else if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + start_mark = token.start_mark + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + var tag []byte + if tag_token { + if len(tag_handle) == 0 { + tag = tag_suffix + tag_suffix = nil + } else { + for i := range parser.tag_directives { + if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { + tag = append([]byte(nil), parser.tag_directives[i].prefix...) + tag = append(tag, tag_suffix...) + break + } + } + if len(tag) == 0 { + yaml_parser_set_parser_error_context(parser, + "while parsing a node", start_mark, + "found undefined tag handle", tag_mark) + return false + } + } + } + + implicit := len(tag) == 0 + if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_SCALAR_TOKEN { + var plain_implicit, quoted_implicit bool + end_mark = token.end_mark + if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { + plain_implicit = true + } else if len(tag) == 0 { + quoted_implicit = true + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + value: token.value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(token.style), + } + skip_token(parser) + return true + } + if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { + // [Go] Some of the events below can be merged as they differ only on style. + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_FLOW_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), + } + return true + } + if len(anchor) > 0 || len(tag) > 0 { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + quoted_implicit: false, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true + } + + context := "while parsing a flow node" + if block { + context = "while parsing a block node" + } + yaml_parser_set_parser_error_context(parser, context, start_mark, + "did not find expected node content", token.start_mark) + return false +} + +// Parse the productions: +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// ******************** *********** * ********* +// +func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } else { + parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } + if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block collection", context_mark, + "did not find expected '-' indicator", token.start_mark) +} + +// Parse the productions: +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// *********** * +func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && + token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? + } + return true +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// ******************* +// ((KEY block_node_or_indentless_sequence?)? +// *** * +// (VALUE block_node_or_indentless_sequence?)?)* +// +// BLOCK-END +// ********* +// +func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_KEY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } else { + parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } else if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block mapping", context_mark, + "did not find expected key", token.start_mark) +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// +// ((KEY block_node_or_indentless_sequence?)? +// +// (VALUE block_node_or_indentless_sequence?)?)* +// ***** * +// BLOCK-END +// +// +func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence ::= FLOW-SEQUENCE-START +// ******************* +// (flow_sequence_entry FLOW-ENTRY)* +// * ********** +// flow_sequence_entry? +// * +// FLOW-SEQUENCE-END +// ***************** +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow sequence", context_mark, + "did not find expected ',' or ']'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + implicit: true, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + skip_token(parser) + return true + } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true +} + +// +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// *** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + mark := token.end_mark + skip_token(parser) + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// ***** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? + } + return true +} + +// Parse the productions: +// flow_mapping ::= FLOW-MAPPING-START +// ****************** +// (flow_mapping_entry FLOW-ENTRY)* +// * ********** +// flow_mapping_entry? +// ****************** +// FLOW-MAPPING-END +// **************** +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * *** * +// +func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow mapping", context_mark, + "did not find expected ',' or '}'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } else { + parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true +} + +// Parse the productions: +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * ***** * +// +func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { + token := peek_token(parser) + if token == nil { + return false + } + if empty { + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Generate an empty scalar event. +func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: mark, + end_mark: mark, + value: nil, // Empty + implicit: true, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true +} + +var default_tag_directives = []yaml_tag_directive_t{ + {[]byte("!"), []byte("!")}, + {[]byte("!!"), []byte("tag:yaml.org,2002:")}, +} + +// Parse directives. +func yaml_parser_process_directives(parser *yaml_parser_t, + version_directive_ref **yaml_version_directive_t, + tag_directives_ref *[]yaml_tag_directive_t) bool { + + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + + token := peek_token(parser) + if token == nil { + return false + } + + for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { + if version_directive != nil { + yaml_parser_set_parser_error(parser, + "found duplicate %YAML directive", token.start_mark) + return false + } + if token.major != 1 || token.minor != 1 { + yaml_parser_set_parser_error(parser, + "found incompatible YAML document", token.start_mark) + return false + } + version_directive = &yaml_version_directive_t{ + major: token.major, + minor: token.minor, + } + } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { + value := yaml_tag_directive_t{ + handle: token.value, + prefix: token.prefix, + } + if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { + return false + } + tag_directives = append(tag_directives, value) + } + + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + + for i := range default_tag_directives { + if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { + return false + } + } + + if version_directive_ref != nil { + *version_directive_ref = version_directive + } + if tag_directives_ref != nil { + *tag_directives_ref = tag_directives + } + return true +} + +// Append a tag directive to the directives stack. +func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { + for i := range parser.tag_directives { + if bytes.Equal(value.handle, parser.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) + } + } + + // [Go] I suspect the copy is unnecessary. This was likely done + // because there was no way to track ownership of the data. + value_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(value_copy.handle, value.handle) + copy(value_copy.prefix, value.prefix) + parser.tag_directives = append(parser.tag_directives, value_copy) + return true +} diff --git a/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go new file mode 100644 index 0000000..7c1f5fa --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/readerc.go @@ -0,0 +1,412 @@ +package yaml + +import ( + "io" +) + +// Set the reader error and return 0. +func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { + parser.error = yaml_READER_ERROR + parser.problem = problem + parser.problem_offset = offset + parser.problem_value = value + return false +} + +// Byte order marks. +const ( + bom_UTF8 = "\xef\xbb\xbf" + bom_UTF16LE = "\xff\xfe" + bom_UTF16BE = "\xfe\xff" +) + +// Determine the input stream encoding by checking the BOM symbol. If no BOM is +// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. +func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { + // Ensure that we had enough bytes in the raw buffer. + for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { + if !yaml_parser_update_raw_buffer(parser) { + return false + } + } + + // Determine the encoding. + buf := parser.raw_buffer + pos := parser.raw_buffer_pos + avail := len(buf) - pos + if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { + parser.encoding = yaml_UTF16LE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { + parser.encoding = yaml_UTF16BE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { + parser.encoding = yaml_UTF8_ENCODING + parser.raw_buffer_pos += 3 + parser.offset += 3 + } else { + parser.encoding = yaml_UTF8_ENCODING + } + return true +} + +// Update the raw buffer. +func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { + size_read := 0 + + // Return if the raw buffer is full. + if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { + return true + } + + // Return on EOF. + if parser.eof { + return true + } + + // Move the remaining bytes in the raw buffer to the beginning. + if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { + copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) + } + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] + parser.raw_buffer_pos = 0 + + // Call the read handler to fill the buffer. + size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] + if err == io.EOF { + parser.eof = true + } else if err != nil { + return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) + } + return true +} + +// Ensure that the buffer contains at least `length` characters. +// Return true on success, false on failure. +// +// The length is supposed to be significantly less that the buffer size. +func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { + if parser.read_handler == nil { + panic("read handler must be set") + } + + // [Go] This function was changed to guarantee the requested length size at EOF. + // The fact we need to do this is pretty awful, but the description above implies + // for that to be the case, and there are tests + + // If the EOF flag is set and the raw buffer is empty, do nothing. + if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { + // [Go] ACTUALLY! Read the documentation of this function above. + // This is just broken. To return true, we need to have the + // given length in the buffer. Not doing that means every single + // check that calls this function to make sure the buffer has a + // given length is Go) panicking; or C) accessing invalid memory. + //return true + } + + // Return if the buffer contains enough characters. + if parser.unread >= length { + return true + } + + // Determine the input encoding if it is not known yet. + if parser.encoding == yaml_ANY_ENCODING { + if !yaml_parser_determine_encoding(parser) { + return false + } + } + + // Move the unread characters to the beginning of the buffer. + buffer_len := len(parser.buffer) + if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { + copy(parser.buffer, parser.buffer[parser.buffer_pos:]) + buffer_len -= parser.buffer_pos + parser.buffer_pos = 0 + } else if parser.buffer_pos == buffer_len { + buffer_len = 0 + parser.buffer_pos = 0 + } + + // Open the whole buffer for writing, and cut it before returning. + parser.buffer = parser.buffer[:cap(parser.buffer)] + + // Fill the buffer until it has enough characters. + first := true + for parser.unread < length { + + // Fill the raw buffer if necessary. + if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { + if !yaml_parser_update_raw_buffer(parser) { + parser.buffer = parser.buffer[:buffer_len] + return false + } + } + first = false + + // Decode the raw buffer. + inner: + for parser.raw_buffer_pos != len(parser.raw_buffer) { + var value rune + var width int + + raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos + + // Decode the next character. + switch parser.encoding { + case yaml_UTF8_ENCODING: + // Decode a UTF-8 character. Check RFC 3629 + // (http://www.ietf.org/rfc/rfc3629.txt) for more details. + // + // The following table (taken from the RFC) is used for + // decoding. + // + // Char. number range | UTF-8 octet sequence + // (hexadecimal) | (binary) + // --------------------+------------------------------------ + // 0000 0000-0000 007F | 0xxxxxxx + // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx + // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx + // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + // + // Additionally, the characters in the range 0xD800-0xDFFF + // are prohibited as they are reserved for use with UTF-16 + // surrogate pairs. + + // Determine the length of the UTF-8 sequence. + octet := parser.raw_buffer[parser.raw_buffer_pos] + switch { + case octet&0x80 == 0x00: + width = 1 + case octet&0xE0 == 0xC0: + width = 2 + case octet&0xF0 == 0xE0: + width = 3 + case octet&0xF8 == 0xF0: + width = 4 + default: + // The leading octet is invalid. + return yaml_parser_set_reader_error(parser, + "invalid leading UTF-8 octet", + parser.offset, int(octet)) + } + + // Check if the raw buffer contains an incomplete character. + if width > raw_unread { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-8 octet sequence", + parser.offset, -1) + } + break inner + } + + // Decode the leading octet. + switch { + case octet&0x80 == 0x00: + value = rune(octet & 0x7F) + case octet&0xE0 == 0xC0: + value = rune(octet & 0x1F) + case octet&0xF0 == 0xE0: + value = rune(octet & 0x0F) + case octet&0xF8 == 0xF0: + value = rune(octet & 0x07) + default: + value = 0 + } + + // Check and decode the trailing octets. + for k := 1; k < width; k++ { + octet = parser.raw_buffer[parser.raw_buffer_pos+k] + + // Check if the octet is valid. + if (octet & 0xC0) != 0x80 { + return yaml_parser_set_reader_error(parser, + "invalid trailing UTF-8 octet", + parser.offset+k, int(octet)) + } + + // Decode the octet. + value = (value << 6) + rune(octet&0x3F) + } + + // Check the length of the sequence against the value. + switch { + case width == 1: + case width == 2 && value >= 0x80: + case width == 3 && value >= 0x800: + case width == 4 && value >= 0x10000: + default: + return yaml_parser_set_reader_error(parser, + "invalid length of a UTF-8 sequence", + parser.offset, -1) + } + + // Check the range of the value. + if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { + return yaml_parser_set_reader_error(parser, + "invalid Unicode character", + parser.offset, int(value)) + } + + case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: + var low, high int + if parser.encoding == yaml_UTF16LE_ENCODING { + low, high = 0, 1 + } else { + low, high = 1, 0 + } + + // The UTF-16 encoding is not as simple as one might + // naively think. Check RFC 2781 + // (http://www.ietf.org/rfc/rfc2781.txt). + // + // Normally, two subsequent bytes describe a Unicode + // character. However a special technique (called a + // surrogate pair) is used for specifying character + // values larger than 0xFFFF. + // + // A surrogate pair consists of two pseudo-characters: + // high surrogate area (0xD800-0xDBFF) + // low surrogate area (0xDC00-0xDFFF) + // + // The following formulas are used for decoding + // and encoding characters using surrogate pairs: + // + // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) + // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) + // W1 = 110110yyyyyyyyyy + // W2 = 110111xxxxxxxxxx + // + // where U is the character value, W1 is the high surrogate + // area, W2 is the low surrogate area. + + // Check for incomplete UTF-16 character. + if raw_unread < 2 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 character", + parser.offset, -1) + } + break inner + } + + // Get the character. + value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) + + // Check for unexpected low surrogate area. + if value&0xFC00 == 0xDC00 { + return yaml_parser_set_reader_error(parser, + "unexpected low surrogate area", + parser.offset, int(value)) + } + + // Check for a high surrogate area. + if value&0xFC00 == 0xD800 { + width = 4 + + // Check for incomplete surrogate pair. + if raw_unread < 4 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 surrogate pair", + parser.offset, -1) + } + break inner + } + + // Get the next character. + value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) + + // Check for a low surrogate area. + if value2&0xFC00 != 0xDC00 { + return yaml_parser_set_reader_error(parser, + "expected low surrogate area", + parser.offset+2, int(value2)) + } + + // Generate the value of the surrogate pair. + value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) + } else { + width = 2 + } + + default: + panic("impossible") + } + + // Check if the character is in the allowed range: + // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) + // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) + // | [#x10000-#x10FFFF] (32 bit) + switch { + case value == 0x09: + case value == 0x0A: + case value == 0x0D: + case value >= 0x20 && value <= 0x7E: + case value == 0x85: + case value >= 0xA0 && value <= 0xD7FF: + case value >= 0xE000 && value <= 0xFFFD: + case value >= 0x10000 && value <= 0x10FFFF: + default: + return yaml_parser_set_reader_error(parser, + "control characters are not allowed", + parser.offset, int(value)) + } + + // Move the raw pointers. + parser.raw_buffer_pos += width + parser.offset += width + + // Finally put the character into the buffer. + if value <= 0x7F { + // 0000 0000-0000 007F . 0xxxxxxx + parser.buffer[buffer_len+0] = byte(value) + buffer_len += 1 + } else if value <= 0x7FF { + // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) + parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) + buffer_len += 2 + } else if value <= 0xFFFF { + // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) + buffer_len += 3 + } else { + // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) + buffer_len += 4 + } + + parser.unread++ + } + + // On EOF, put NUL into the buffer and return. + if parser.eof { + parser.buffer[buffer_len] = 0 + buffer_len++ + parser.unread++ + break + } + } + // [Go] Read the documentation of this function above. To return true, + // we need to have the given length in the buffer. Not doing that means + // every single check that calls this function to make sure the buffer + // has a given length is Go) panicking; or C) accessing invalid memory. + // This happens here due to the EOF above breaking early. + for buffer_len < length { + parser.buffer[buffer_len] = 0 + buffer_len++ + } + parser.buffer = parser.buffer[:buffer_len] + return true +} diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go new file mode 100644 index 0000000..4120e0c --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/resolve.go @@ -0,0 +1,258 @@ +package yaml + +import ( + "encoding/base64" + "math" + "regexp" + "strconv" + "strings" + "time" +) + +type resolveMapItem struct { + value interface{} + tag string +} + +var resolveTable = make([]byte, 256) +var resolveMap = make(map[string]resolveMapItem) + +func init() { + t := resolveTable + t[int('+')] = 'S' // Sign + t[int('-')] = 'S' + for _, c := range "0123456789" { + t[int(c)] = 'D' // Digit + } + for _, c := range "yYnNtTfFoO~" { + t[int(c)] = 'M' // In map + } + t[int('.')] = '.' // Float (potentially in map) + + var resolveMapList = []struct { + v interface{} + tag string + l []string + }{ + {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, + {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, + {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, + {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, + {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, + {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, + {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, + {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, + {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, + {"<<", yaml_MERGE_TAG, []string{"<<"}}, + } + + m := resolveMap + for _, item := range resolveMapList { + for _, s := range item.l { + m[s] = resolveMapItem{item.v, item.tag} + } + } +} + +const longTagPrefix = "tag:yaml.org,2002:" + +func shortTag(tag string) string { + // TODO This can easily be made faster and produce less garbage. + if strings.HasPrefix(tag, longTagPrefix) { + return "!!" + tag[len(longTagPrefix):] + } + return tag +} + +func longTag(tag string) string { + if strings.HasPrefix(tag, "!!") { + return longTagPrefix + tag[2:] + } + return tag +} + +func resolvableTag(tag string) bool { + switch tag { + case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG: + return true + } + return false +} + +var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) + +func resolve(tag string, in string) (rtag string, out interface{}) { + if !resolvableTag(tag) { + return tag, in + } + + defer func() { + switch tag { + case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: + return + case yaml_FLOAT_TAG: + if rtag == yaml_INT_TAG { + switch v := out.(type) { + case int64: + rtag = yaml_FLOAT_TAG + out = float64(v) + return + case int: + rtag = yaml_FLOAT_TAG + out = float64(v) + return + } + } + } + failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) + }() + + // Any data is accepted as a !!str or !!binary. + // Otherwise, the prefix is enough of a hint about what it might be. + hint := byte('N') + if in != "" { + hint = resolveTable[in[0]] + } + if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { + // Handle things we can lookup in a map. + if item, ok := resolveMap[in]; ok { + return item.tag, item.value + } + + // Base 60 floats are a bad idea, were dropped in YAML 1.2, and + // are purposefully unsupported here. They're still quoted on + // the way out for compatibility with other parser, though. + + switch hint { + case 'M': + // We've already checked the map above. + + case '.': + // Not in the map, so maybe a normal float. + floatv, err := strconv.ParseFloat(in, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + + case 'D', 'S': + // Int, float, or timestamp. + // Only try values as a timestamp if the value is unquoted or there's an explicit + // !!timestamp tag. + if tag == "" || tag == yaml_TIMESTAMP_TAG { + t, ok := parseTimestamp(in) + if ok { + return yaml_TIMESTAMP_TAG, t + } + } + + plain := strings.Replace(in, "_", "", -1) + intv, err := strconv.ParseInt(plain, 0, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain, 0, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + if yamlStyleFloat.MatchString(plain) { + floatv, err := strconv.ParseFloat(plain, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + } + if strings.HasPrefix(plain, "0b") { + intv, err := strconv.ParseInt(plain[2:], 2, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain[2:], 2, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + } else if strings.HasPrefix(plain, "-0b") { + intv, err := strconv.ParseInt("-" + plain[3:], 2, 64) + if err == nil { + if true || intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + } + default: + panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") + } + } + return yaml_STR_TAG, in +} + +// encodeBase64 encodes s as base64 that is broken up into multiple lines +// as appropriate for the resulting length. +func encodeBase64(s string) string { + const lineLen = 70 + encLen := base64.StdEncoding.EncodedLen(len(s)) + lines := encLen/lineLen + 1 + buf := make([]byte, encLen*2+lines) + in := buf[0:encLen] + out := buf[encLen:] + base64.StdEncoding.Encode(in, []byte(s)) + k := 0 + for i := 0; i < len(in); i += lineLen { + j := i + lineLen + if j > len(in) { + j = len(in) + } + k += copy(out[k:], in[i:j]) + if lines > 1 { + out[k] = '\n' + k++ + } + } + return string(out[:k]) +} + +// This is a subset of the formats allowed by the regular expression +// defined at http://yaml.org/type/timestamp.html. +var allowedTimestampFormats = []string{ + "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. + "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". + "2006-1-2 15:4:5.999999999", // space separated with no time zone + "2006-1-2", // date only + // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" + // from the set of examples. +} + +// parseTimestamp parses s as a timestamp string and +// returns the timestamp and reports whether it succeeded. +// Timestamp formats are defined at http://yaml.org/type/timestamp.html +func parseTimestamp(s string) (time.Time, bool) { + // TODO write code to check all the formats supported by + // http://yaml.org/type/timestamp.html instead of using time.Parse. + + // Quick check: all date formats start with YYYY-. + i := 0 + for ; i < len(s); i++ { + if c := s[i]; c < '0' || c > '9' { + break + } + } + if i != 4 || i == len(s) || s[i] != '-' { + return time.Time{}, false + } + for _, format := range allowedTimestampFormats { + if t, err := time.Parse(format, s); err == nil { + return t, true + } + } + return time.Time{}, false +} diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go new file mode 100644 index 0000000..570b8ec --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/scannerc.go @@ -0,0 +1,2712 @@ +package yaml + +import ( + "bytes" + "fmt" +) + +// Introduction +// ************ +// +// The following notes assume that you are familiar with the YAML specification +// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in +// some cases we are less restrictive that it requires. +// +// The process of transforming a YAML stream into a sequence of events is +// divided on two steps: Scanning and Parsing. +// +// The Scanner transforms the input stream into a sequence of tokens, while the +// parser transform the sequence of tokens produced by the Scanner into a +// sequence of parsing events. +// +// The Scanner is rather clever and complicated. The Parser, on the contrary, +// is a straightforward implementation of a recursive-descendant parser (or, +// LL(1) parser, as it is usually called). +// +// Actually there are two issues of Scanning that might be called "clever", the +// rest is quite straightforward. The issues are "block collection start" and +// "simple keys". Both issues are explained below in details. +// +// Here the Scanning step is explained and implemented. We start with the list +// of all the tokens produced by the Scanner together with short descriptions. +// +// Now, tokens: +// +// STREAM-START(encoding) # The stream start. +// STREAM-END # The stream end. +// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. +// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. +// DOCUMENT-START # '---' +// DOCUMENT-END # '...' +// BLOCK-SEQUENCE-START # Indentation increase denoting a block +// BLOCK-MAPPING-START # sequence or a block mapping. +// BLOCK-END # Indentation decrease. +// FLOW-SEQUENCE-START # '[' +// FLOW-SEQUENCE-END # ']' +// BLOCK-SEQUENCE-START # '{' +// BLOCK-SEQUENCE-END # '}' +// BLOCK-ENTRY # '-' +// FLOW-ENTRY # ',' +// KEY # '?' or nothing (simple keys). +// VALUE # ':' +// ALIAS(anchor) # '*anchor' +// ANCHOR(anchor) # '&anchor' +// TAG(handle,suffix) # '!handle!suffix' +// SCALAR(value,style) # A scalar. +// +// The following two tokens are "virtual" tokens denoting the beginning and the +// end of the stream: +// +// STREAM-START(encoding) +// STREAM-END +// +// We pass the information about the input stream encoding with the +// STREAM-START token. +// +// The next two tokens are responsible for tags: +// +// VERSION-DIRECTIVE(major,minor) +// TAG-DIRECTIVE(handle,prefix) +// +// Example: +// +// %YAML 1.1 +// %TAG ! !foo +// %TAG !yaml! tag:yaml.org,2002: +// --- +// +// The correspoding sequence of tokens: +// +// STREAM-START(utf-8) +// VERSION-DIRECTIVE(1,1) +// TAG-DIRECTIVE("!","!foo") +// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") +// DOCUMENT-START +// STREAM-END +// +// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole +// line. +// +// The document start and end indicators are represented by: +// +// DOCUMENT-START +// DOCUMENT-END +// +// Note that if a YAML stream contains an implicit document (without '---' +// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be +// produced. +// +// In the following examples, we present whole documents together with the +// produced tokens. +// +// 1. An implicit document: +// +// 'a scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// STREAM-END +// +// 2. An explicit document: +// +// --- +// 'a scalar' +// ... +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// SCALAR("a scalar",single-quoted) +// DOCUMENT-END +// STREAM-END +// +// 3. Several documents in a stream: +// +// 'a scalar' +// --- +// 'another scalar' +// --- +// 'yet another scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// DOCUMENT-START +// SCALAR("another scalar",single-quoted) +// DOCUMENT-START +// SCALAR("yet another scalar",single-quoted) +// STREAM-END +// +// We have already introduced the SCALAR token above. The following tokens are +// used to describe aliases, anchors, tag, and scalars: +// +// ALIAS(anchor) +// ANCHOR(anchor) +// TAG(handle,suffix) +// SCALAR(value,style) +// +// The following series of examples illustrate the usage of these tokens: +// +// 1. A recursive sequence: +// +// &A [ *A ] +// +// Tokens: +// +// STREAM-START(utf-8) +// ANCHOR("A") +// FLOW-SEQUENCE-START +// ALIAS("A") +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A tagged scalar: +// +// !!float "3.14" # A good approximation. +// +// Tokens: +// +// STREAM-START(utf-8) +// TAG("!!","float") +// SCALAR("3.14",double-quoted) +// STREAM-END +// +// 3. Various scalar styles: +// +// --- # Implicit empty plain scalars do not produce tokens. +// --- a plain scalar +// --- 'a single-quoted scalar' +// --- "a double-quoted scalar" +// --- |- +// a literal scalar +// --- >- +// a folded +// scalar +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// DOCUMENT-START +// SCALAR("a plain scalar",plain) +// DOCUMENT-START +// SCALAR("a single-quoted scalar",single-quoted) +// DOCUMENT-START +// SCALAR("a double-quoted scalar",double-quoted) +// DOCUMENT-START +// SCALAR("a literal scalar",literal) +// DOCUMENT-START +// SCALAR("a folded scalar",folded) +// STREAM-END +// +// Now it's time to review collection-related tokens. We will start with +// flow collections: +// +// FLOW-SEQUENCE-START +// FLOW-SEQUENCE-END +// FLOW-MAPPING-START +// FLOW-MAPPING-END +// FLOW-ENTRY +// KEY +// VALUE +// +// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and +// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' +// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the +// indicators '?' and ':', which are used for denoting mapping keys and values, +// are represented by the KEY and VALUE tokens. +// +// The following examples show flow collections: +// +// 1. A flow sequence: +// +// [item 1, item 2, item 3] +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-SEQUENCE-START +// SCALAR("item 1",plain) +// FLOW-ENTRY +// SCALAR("item 2",plain) +// FLOW-ENTRY +// SCALAR("item 3",plain) +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A flow mapping: +// +// { +// a simple key: a value, # Note that the KEY token is produced. +// ? a complex key: another value, +// } +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// FLOW-ENTRY +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// FLOW-ENTRY +// FLOW-MAPPING-END +// STREAM-END +// +// A simple key is a key which is not denoted by the '?' indicator. Note that +// the Scanner still produce the KEY token whenever it encounters a simple key. +// +// For scanning block collections, the following tokens are used (note that we +// repeat KEY and VALUE here): +// +// BLOCK-SEQUENCE-START +// BLOCK-MAPPING-START +// BLOCK-END +// BLOCK-ENTRY +// KEY +// VALUE +// +// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation +// increase that precedes a block collection (cf. the INDENT token in Python). +// The token BLOCK-END denote indentation decrease that ends a block collection +// (cf. the DEDENT token in Python). However YAML has some syntax pecularities +// that makes detections of these tokens more complex. +// +// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators +// '-', '?', and ':' correspondingly. +// +// The following examples show how the tokens BLOCK-SEQUENCE-START, +// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: +// +// 1. Block sequences: +// +// - item 1 +// - item 2 +// - +// - item 3.1 +// - item 3.2 +// - +// key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 3.1",plain) +// BLOCK-ENTRY +// SCALAR("item 3.2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Block mappings: +// +// a simple key: a value # The KEY token is produced here. +// ? a complex key +// : another value +// a mapping: +// key 1: value 1 +// key 2: value 2 +// a sequence: +// - item 1 +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// KEY +// SCALAR("a mapping",plain) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML does not always require to start a new block collection from a new +// line. If the current line contains only '-', '?', and ':' indicators, a new +// block collection may start at the current line. The following examples +// illustrate this case: +// +// 1. Collections in a sequence: +// +// - - item 1 +// - item 2 +// - key 1: value 1 +// key 2: value 2 +// - ? complex key +// : complex value +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("complex key") +// VALUE +// SCALAR("complex value") +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Collections in a mapping: +// +// ? a sequence +// : - item 1 +// - item 2 +// ? a mapping +// : key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// KEY +// SCALAR("a mapping",plain) +// VALUE +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML also permits non-indented sequences if they are included into a block +// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: +// +// key: +// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key",plain) +// VALUE +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// + +// Ensure that the buffer contains the required number of characters. +// Return true on success, false on failure (reader error or memory error). +func cache(parser *yaml_parser_t, length int) bool { + // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) + return parser.unread >= length || yaml_parser_update_buffer(parser, length) +} + +// Advance the buffer pointer. +func skip(parser *yaml_parser_t) { + parser.mark.index++ + parser.mark.column++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) +} + +func skip_line(parser *yaml_parser_t) { + if is_crlf(parser.buffer, parser.buffer_pos) { + parser.mark.index += 2 + parser.mark.column = 0 + parser.mark.line++ + parser.unread -= 2 + parser.buffer_pos += 2 + } else if is_break(parser.buffer, parser.buffer_pos) { + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) + } +} + +// Copy a character to a string buffer and advance pointers. +func read(parser *yaml_parser_t, s []byte) []byte { + w := width(parser.buffer[parser.buffer_pos]) + if w == 0 { + panic("invalid character sequence") + } + if len(s) == 0 { + s = make([]byte, 0, 32) + } + if w == 1 && len(s)+w <= cap(s) { + s = s[:len(s)+1] + s[len(s)-1] = parser.buffer[parser.buffer_pos] + parser.buffer_pos++ + } else { + s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) + parser.buffer_pos += w + } + parser.mark.index++ + parser.mark.column++ + parser.unread-- + return s +} + +// Copy a line break character to a string buffer and advance pointers. +func read_line(parser *yaml_parser_t, s []byte) []byte { + buf := parser.buffer + pos := parser.buffer_pos + switch { + case buf[pos] == '\r' && buf[pos+1] == '\n': + // CR LF . LF + s = append(s, '\n') + parser.buffer_pos += 2 + parser.mark.index++ + parser.unread-- + case buf[pos] == '\r' || buf[pos] == '\n': + // CR|LF . LF + s = append(s, '\n') + parser.buffer_pos += 1 + case buf[pos] == '\xC2' && buf[pos+1] == '\x85': + // NEL . LF + s = append(s, '\n') + parser.buffer_pos += 2 + case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): + // LS|PS . LS|PS + s = append(s, buf[parser.buffer_pos:pos+3]...) + parser.buffer_pos += 3 + default: + return s + } + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + return s +} + +// Get the next token. +func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { + // Erase the token object. + *token = yaml_token_t{} // [Go] Is this necessary? + + // No tokens after STREAM-END or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR { + return true + } + + // Ensure that the tokens queue contains enough tokens. + if !parser.token_available { + if !yaml_parser_fetch_more_tokens(parser) { + return false + } + } + + // Fetch the next token from the queue. + *token = parser.tokens[parser.tokens_head] + parser.tokens_head++ + parser.tokens_parsed++ + parser.token_available = false + + if token.typ == yaml_STREAM_END_TOKEN { + parser.stream_end_produced = true + } + return true +} + +// Set the scanner error and return false. +func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { + parser.error = yaml_SCANNER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = parser.mark + return false +} + +func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { + context := "while parsing a tag" + if directive { + context = "while parsing a %TAG directive" + } + return yaml_parser_set_scanner_error(parser, context, context_mark, problem) +} + +func trace(args ...interface{}) func() { + pargs := append([]interface{}{"+++"}, args...) + fmt.Println(pargs...) + pargs = append([]interface{}{"---"}, args...) + return func() { fmt.Println(pargs...) } +} + +// Ensure that the tokens queue contains at least one token which can be +// returned to the Parser. +func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { + // While we need more tokens to fetch, do it. + for { + // Check if we really need to fetch more tokens. + need_more_tokens := false + + if parser.tokens_head == len(parser.tokens) { + // Queue is empty. + need_more_tokens = true + } else { + // Check if any potential simple key may occupy the head position. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + if simple_key.possible && simple_key.token_number == parser.tokens_parsed { + need_more_tokens = true + break + } + } + } + + // We are finished. + if !need_more_tokens { + break + } + // Fetch the next token. + if !yaml_parser_fetch_next_token(parser) { + return false + } + } + + parser.token_available = true + return true +} + +// The dispatcher for token fetchers. +func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { + // Ensure that the buffer is initialized. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check if we just started scanning. Fetch STREAM-START then. + if !parser.stream_start_produced { + return yaml_parser_fetch_stream_start(parser) + } + + // Eat whitespaces and comments until we reach the next token. + if !yaml_parser_scan_to_next_token(parser) { + return false + } + + // Remove obsolete potential simple keys. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + // Check the indentation level against the current column. + if !yaml_parser_unroll_indent(parser, parser.mark.column) { + return false + } + + // Ensure that the buffer contains at least 4 characters. 4 is the length + // of the longest indicators ('--- ' and '... '). + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + // Is it the end of the stream? + if is_z(parser.buffer, parser.buffer_pos) { + return yaml_parser_fetch_stream_end(parser) + } + + // Is it a directive? + if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { + return yaml_parser_fetch_directive(parser) + } + + buf := parser.buffer + pos := parser.buffer_pos + + // Is it the document start indicator? + if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) + } + + // Is it the document end indicator? + if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) + } + + // Is it the flow sequence start indicator? + if buf[pos] == '[' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) + } + + // Is it the flow mapping start indicator? + if parser.buffer[parser.buffer_pos] == '{' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) + } + + // Is it the flow sequence end indicator? + if parser.buffer[parser.buffer_pos] == ']' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_SEQUENCE_END_TOKEN) + } + + // Is it the flow mapping end indicator? + if parser.buffer[parser.buffer_pos] == '}' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_MAPPING_END_TOKEN) + } + + // Is it the flow entry indicator? + if parser.buffer[parser.buffer_pos] == ',' { + return yaml_parser_fetch_flow_entry(parser) + } + + // Is it the block entry indicator? + if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { + return yaml_parser_fetch_block_entry(parser) + } + + // Is it the key indicator? + if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_key(parser) + } + + // Is it the value indicator? + if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_value(parser) + } + + // Is it an alias? + if parser.buffer[parser.buffer_pos] == '*' { + return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) + } + + // Is it an anchor? + if parser.buffer[parser.buffer_pos] == '&' { + return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) + } + + // Is it a tag? + if parser.buffer[parser.buffer_pos] == '!' { + return yaml_parser_fetch_tag(parser) + } + + // Is it a literal scalar? + if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, true) + } + + // Is it a folded scalar? + if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, false) + } + + // Is it a single-quoted scalar? + if parser.buffer[parser.buffer_pos] == '\'' { + return yaml_parser_fetch_flow_scalar(parser, true) + } + + // Is it a double-quoted scalar? + if parser.buffer[parser.buffer_pos] == '"' { + return yaml_parser_fetch_flow_scalar(parser, false) + } + + // Is it a plain scalar? + // + // A plain scalar may start with any non-blank characters except + // + // '-', '?', ':', ',', '[', ']', '{', '}', + // '#', '&', '*', '!', '|', '>', '\'', '\"', + // '%', '@', '`'. + // + // In the block context (and, for the '-' indicator, in the flow context + // too), it may also start with the characters + // + // '-', '?', ':' + // + // if it is followed by a non-space character. + // + // The last rule is more restrictive than the specification requires. + // [Go] Make this logic more reasonable. + //switch parser.buffer[parser.buffer_pos] { + //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': + //} + if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || + parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || + parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || + (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level == 0 && + (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && + !is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_plain_scalar(parser) + } + + // If we don't determine the token type so far, it is an error. + return yaml_parser_set_scanner_error(parser, + "while scanning for the next token", parser.mark, + "found character that cannot start any token") +} + +// Check the list of potential simple keys and remove the positions that +// cannot contain simple keys anymore. +func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { + // Check for a potential simple key for each flow level. + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + + // The specification requires that a simple key + // + // - is limited to a single line, + // - is shorter than 1024 characters. + if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { + + // Check if the potential simple key to be removed is required. + if simple_key.required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key.mark, + "could not find expected ':'") + } + simple_key.possible = false + } + } + return true +} + +// Check if a simple key may start at the current position and add it if +// needed. +func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { + // A simple key is required at the current position if the scanner is in + // the block context and the current column coincides with the indentation + // level. + + required := parser.flow_level == 0 && parser.indent == parser.mark.column + + // + // If the current position may start a simple key, save it. + // + if parser.simple_key_allowed { + simple_key := yaml_simple_key_t{ + possible: true, + required: required, + token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), + } + simple_key.mark = parser.mark + + if !yaml_parser_remove_simple_key(parser) { + return false + } + parser.simple_keys[len(parser.simple_keys)-1] = simple_key + } + return true +} + +// Remove a potential simple key at the current flow level. +func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { + i := len(parser.simple_keys) - 1 + if parser.simple_keys[i].possible { + // If the key is required, it is an error. + if parser.simple_keys[i].required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", parser.simple_keys[i].mark, + "could not find expected ':'") + } + } + // Remove the key from the stack. + parser.simple_keys[i].possible = false + return true +} + +// max_flow_level limits the flow_level +const max_flow_level = 10000 + +// Increase the flow level and resize the simple key list if needed. +func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { + // Reset the simple key on the next level. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // Increase the flow level. + parser.flow_level++ + if parser.flow_level > max_flow_level { + return yaml_parser_set_scanner_error(parser, + "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_flow_level)) + } + return true +} + +// Decrease the flow level. +func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { + if parser.flow_level > 0 { + parser.flow_level-- + parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] + } + return true +} + +// max_indents limits the indents stack size +const max_indents = 10000 + +// Push the current indentation level to the stack and set the new level +// the current column is greater than the indentation level. In this case, +// append or insert the specified token into the token queue. +func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + if parser.indent < column { + // Push the current indentation level to the stack and set the new + // indentation level. + parser.indents = append(parser.indents, parser.indent) + parser.indent = column + if len(parser.indents) > max_indents { + return yaml_parser_set_scanner_error(parser, + "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_indents)) + } + + // Create a token and insert it into the queue. + token := yaml_token_t{ + typ: typ, + start_mark: mark, + end_mark: mark, + } + if number > -1 { + number -= parser.tokens_parsed + } + yaml_insert_token(parser, number, &token) + } + return true +} + +// Pop indentation levels from the indents stack until the current level +// becomes less or equal to the column. For each indentation level, append +// the BLOCK-END token. +func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + // Loop through the indentation levels in the stack. + for parser.indent > column { + // Create a token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + + // Pop the indentation level. + parser.indent = parser.indents[len(parser.indents)-1] + parser.indents = parser.indents[:len(parser.indents)-1] + } + return true +} + +// Initialize the scanner and produce the STREAM-START token. +func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { + + // Set the initial indentation. + parser.indent = -1 + + // Initialize the simple key stack. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // A simple key is allowed at the beginning of the stream. + parser.simple_key_allowed = true + + // We have started. + parser.stream_start_produced = true + + // Create the STREAM-START token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_START_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + encoding: parser.encoding, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the STREAM-END token and shut down the scanner. +func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { + + // Force new line. + if parser.mark.column != 0 { + parser.mark.column = 0 + parser.mark.line++ + } + + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the STREAM-END token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. +func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. + token := yaml_token_t{} + if !yaml_parser_scan_directive(parser, &token) { + return false + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the DOCUMENT-START or DOCUMENT-END token. +func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Consume the token. + start_mark := parser.mark + + skip(parser) + skip(parser) + skip(parser) + + end_mark := parser.mark + + // Create the DOCUMENT-START or DOCUMENT-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. +func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // The indicators '[' and '{' may start a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // Increase the flow level. + if !yaml_parser_increase_flow_level(parser) { + return false + } + + // A simple key may follow the indicators '[' and '{'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. +func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset any potential simple key on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Decrease the flow level. + if !yaml_parser_decrease_flow_level(parser) { + return false + } + + // No simple keys after the indicators ']' and '}'. + parser.simple_key_allowed = false + + // Consume the token. + + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-ENTRY token. +func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after ','. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_FLOW_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the BLOCK-ENTRY token. +func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { + // Check if the scanner is in the block context. + if parser.flow_level == 0 { + // Check if we are allowed to start a new entry. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "block sequence entries are not allowed in this context") + } + // Add the BLOCK-SEQUENCE-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { + return false + } + } else { + // It is an error for the '-' indicator to occur in the flow context, + // but we let the Parser detect and report about it because the Parser + // is able to point to the context. + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '-'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the BLOCK-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the KEY token. +func yaml_parser_fetch_key(parser *yaml_parser_t) bool { + + // In the block context, additional checks are required. + if parser.flow_level == 0 { + // Check if we are allowed to start a new key (not nessesary simple). + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping keys are not allowed in this context") + } + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '?' in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the KEY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the VALUE token. +func yaml_parser_fetch_value(parser *yaml_parser_t) bool { + + simple_key := &parser.simple_keys[len(parser.simple_keys)-1] + + // Have we found a simple key? + if simple_key.possible { + // Create the KEY token and insert it into the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: simple_key.mark, + end_mark: simple_key.mark, + } + yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) + + // In the block context, we may need to add the BLOCK-MAPPING-START token. + if !yaml_parser_roll_indent(parser, simple_key.mark.column, + simple_key.token_number, + yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { + return false + } + + // Remove the simple key. + simple_key.possible = false + + // A simple key cannot follow another simple key. + parser.simple_key_allowed = false + + } else { + // The ':' indicator follows a complex key. + + // In the block context, extra checks are required. + if parser.flow_level == 0 { + + // Check if we are allowed to start a complex value. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping values are not allowed in this context") + } + + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Simple keys after ':' are allowed in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + } + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the VALUE token and append it to the queue. + token := yaml_token_t{ + typ: yaml_VALUE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the ALIAS or ANCHOR token. +func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // An anchor or an alias could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow an anchor or an alias. + parser.simple_key_allowed = false + + // Create the ALIAS or ANCHOR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_anchor(parser, &token, typ) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the TAG token. +func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { + // A tag could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a tag. + parser.simple_key_allowed = false + + // Create the TAG token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_tag(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. +func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { + // Remove any potential simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // A simple key may follow a block scalar. + parser.simple_key_allowed = true + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_block_scalar(parser, &token, literal) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. +func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_flow_scalar(parser, &token, single) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,plain) token. +func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_plain_scalar(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Eat whitespaces and comments until the next token is found. +func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { + + // Until the next token is not found. + for { + // Allow the BOM mark to start a line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { + skip(parser) + } + + // Eat whitespaces. + // Tabs are allowed: + // - in the flow context + // - in the block context, but not at the beginning of the line or + // after '-', '?', or ':' (complex value). + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Eat a comment until a line break. + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // If it is a line break, eat it. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + + // In the block context, a new line may start a simple key. + if parser.flow_level == 0 { + parser.simple_key_allowed = true + } + } else { + break // We have found a token. + } + } + + return true +} + +// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { + // Eat '%'. + start_mark := parser.mark + skip(parser) + + // Scan the directive name. + var name []byte + if !yaml_parser_scan_directive_name(parser, start_mark, &name) { + return false + } + + // Is it a YAML directive? + if bytes.Equal(name, []byte("YAML")) { + // Scan the VERSION directive value. + var major, minor int8 + if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { + return false + } + end_mark := parser.mark + + // Create a VERSION-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_VERSION_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + major: major, + minor: minor, + } + + // Is it a TAG directive? + } else if bytes.Equal(name, []byte("TAG")) { + // Scan the TAG directive value. + var handle, prefix []byte + if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { + return false + } + end_mark := parser.mark + + // Create a TAG-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_TAG_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + prefix: prefix, + } + + // Unknown directive. + } else { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unknown directive name") + return false + } + + // Eat the rest of the line including any comments. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + return true +} + +// Scan the directive name. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^ +// +func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { + // Consume the directive name. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + var s []byte + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the name is empty. + if len(s) == 0 { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "could not find expected directive name") + return false + } + + // Check for an blank character after the name. + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unexpected non-alphabetical character") + return false + } + *name = s + return true +} + +// Scan the value of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^ +func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the major version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { + return false + } + + // Eat '.'. + if parser.buffer[parser.buffer_pos] != '.' { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected digit or '.' character") + } + + skip(parser) + + // Consume the minor version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { + return false + } + return true +} + +const max_number_length = 2 + +// Scan the version number of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^ +// %YAML 1.1 # a comment \n +// ^ +func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { + + // Repeat while the next character is digit. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var value, length int8 + for is_digit(parser.buffer, parser.buffer_pos) { + // Check if the number is too long. + length++ + if length > max_number_length { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "found extremely long version number") + } + value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the number was present. + if length == 0 { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected version number") + } + *number = value + return true +} + +// Scan the value of a TAG-DIRECTIVE token. +// +// Scope: +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { + var handle_value, prefix_value []byte + + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a handle. + if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { + return false + } + + // Expect a whitespace. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blank(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace") + return false + } + + // Eat whitespaces. + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a prefix. + if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { + return false + } + + // Expect a whitespace or line break. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace or line break") + return false + } + + *handle = handle_value + *prefix = prefix_value + return true +} + +func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { + var s []byte + + // Eat the indicator character. + start_mark := parser.mark + skip(parser) + + // Consume the value. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + end_mark := parser.mark + + /* + * Check if length of the anchor is greater than 0 and it is followed by + * a whitespace character or one of the indicators: + * + * '?', ':', ',', ']', '}', '%', '@', '`'. + */ + + if len(s) == 0 || + !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || + parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '`') { + context := "while scanning an alias" + if typ == yaml_ANCHOR_TOKEN { + context = "while scanning an anchor" + } + yaml_parser_set_scanner_error(parser, context, start_mark, + "did not find expected alphabetic or numeric character") + return false + } + + // Create a token. + *token = yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + value: s, + } + + return true +} + +/* + * Scan a TAG token. + */ + +func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { + var handle, suffix []byte + + start_mark := parser.mark + + // Check if the tag is in the canonical form. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + if parser.buffer[parser.buffer_pos+1] == '<' { + // Keep the handle as '' + + // Eat '!<' + skip(parser) + skip(parser) + + // Consume the tag value. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + + // Check for '>' and eat it. + if parser.buffer[parser.buffer_pos] != '>' { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find the expected '>'") + return false + } + + skip(parser) + } else { + // The tag has either the '!suffix' or the '!handle!suffix' form. + + // First, try to scan a handle. + if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { + return false + } + + // Check if it is, indeed, handle. + if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { + // Scan the suffix now. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + } else { + // It wasn't a handle after all. Scan the rest of the tag. + if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { + return false + } + + // Set the handle to '!'. + handle = []byte{'!'} + + // A special case: the '!' tag. Set the handle to '' and the + // suffix to '!'. + if len(suffix) == 0 { + handle, suffix = suffix, handle + } + } + } + + // Check the character which ends the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find expected whitespace or line break") + return false + } + + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_TAG_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + suffix: suffix, + } + return true +} + +// Scan a tag handle. +func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { + // Check the initial '!' character. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] != '!' { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + + var s []byte + + // Copy the '!' character. + s = read(parser, s) + + // Copy all subsequent alphabetical and numerical characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the trailing character is '!' and copy it. + if parser.buffer[parser.buffer_pos] == '!' { + s = read(parser, s) + } else { + // It's either the '!' tag or not really a tag handle. If it's a %TAG + // directive, it's an error. If it's a tag token, it must be a part of URI. + if directive && string(s) != "!" { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + } + + *handle = s + return true +} + +// Scan a tag. +func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { + //size_t length = head ? strlen((char *)head) : 0 + var s []byte + hasTag := len(head) > 0 + + // Copy the head if needed. + // + // Note that we don't copy the leading '!' character. + if len(head) > 1 { + s = append(s, head[1:]...) + } + + // Scan the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // The set of characters that may appear in URI is as follows: + // + // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', + // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', + // '%'. + // [Go] Convert this into more reasonable logic. + for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || + parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || + parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || + parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || + parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || + parser.buffer[parser.buffer_pos] == '%' { + // Check if it is a URI-escape sequence. + if parser.buffer[parser.buffer_pos] == '%' { + if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { + return false + } + } else { + s = read(parser, s) + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + hasTag = true + } + + if !hasTag { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected tag URI") + return false + } + *uri = s + return true +} + +// Decode an URI-escape sequence corresponding to a single UTF-8 character. +func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { + + // Decode the required number of characters. + w := 1024 + for w > 0 { + // Check for a URI-escaped octet. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + + if !(parser.buffer[parser.buffer_pos] == '%' && + is_hex(parser.buffer, parser.buffer_pos+1) && + is_hex(parser.buffer, parser.buffer_pos+2)) { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find URI escaped octet") + } + + // Get the octet. + octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) + + // If it is the leading octet, determine the length of the UTF-8 sequence. + if w == 1024 { + w = width(octet) + if w == 0 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect leading UTF-8 octet") + } + } else { + // Check if the trailing octet is correct. + if octet&0xC0 != 0x80 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect trailing UTF-8 octet") + } + } + + // Copy the octet and move the pointers. + *s = append(*s, octet) + skip(parser) + skip(parser) + skip(parser) + w-- + } + return true +} + +// Scan a block scalar. +func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { + // Eat the indicator '|' or '>'. + start_mark := parser.mark + skip(parser) + + // Scan the additional block scalar indicators. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check for a chomping indicator. + var chomping, increment int + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + // Set the chomping method and eat the indicator. + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + + // Check for an indentation indicator. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if is_digit(parser.buffer, parser.buffer_pos) { + // Check that the indentation is greater than 0. + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + + // Get the indentation level and eat the indicator. + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + } + + } else if is_digit(parser.buffer, parser.buffer_pos) { + // Do the same as above, but in the opposite order. + + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + } + } + + // Eat whitespaces and comments to the end of the line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + end_mark := parser.mark + + // Set the indentation level if it was specified. + var indent int + if increment > 0 { + if parser.indent >= 0 { + indent = parser.indent + increment + } else { + indent = increment + } + } + + // Scan the leading line breaks and determine the indentation level if needed. + var s, leading_break, trailing_breaks []byte + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + + // Scan the block scalar content. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var leading_blank, trailing_blank bool + for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { + // We are at the beginning of a non-empty line. + + // Is it a trailing whitespace? + trailing_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Check if we need to fold the leading line break. + if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { + // Do we need to join the lines by space? + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } + } else { + s = append(s, leading_break...) + } + leading_break = leading_break[:0] + + // Append the remaining line breaks. + s = append(s, trailing_breaks...) + trailing_breaks = trailing_breaks[:0] + + // Is it a leading whitespace? + leading_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Consume the current line. + for !is_breakz(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + leading_break = read_line(parser, leading_break) + + // Eat the following indentation spaces and line breaks. + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + } + + // Chomp the tail. + if chomping != -1 { + s = append(s, leading_break...) + } + if chomping == 1 { + s = append(s, trailing_breaks...) + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_LITERAL_SCALAR_STYLE, + } + if !literal { + token.style = yaml_FOLDED_SCALAR_STYLE + } + return true +} + +// Scan indentation spaces and line breaks for a block scalar. Determine the +// indentation level if needed. +func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { + *end_mark = parser.mark + + // Eat the indentation spaces and line breaks. + max_indent := 0 + for { + // Eat the indentation spaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.mark.column > max_indent { + max_indent = parser.mark.column + } + + // Check for a tab character messing the indentation. + if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { + return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found a tab character where an indentation space is expected") + } + + // Have we found a non-empty line? + if !is_break(parser.buffer, parser.buffer_pos) { + break + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + // [Go] Should really be returning breaks instead. + *breaks = read_line(parser, *breaks) + *end_mark = parser.mark + } + + // Determine the indentation level if needed. + if *indent == 0 { + *indent = max_indent + if *indent < parser.indent+1 { + *indent = parser.indent + 1 + } + if *indent < 1 { + *indent = 1 + } + } + return true +} + +// Scan a quoted scalar. +func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { + // Eat the left quote. + start_mark := parser.mark + skip(parser) + + // Consume the content of the quoted scalar. + var s, leading_break, trailing_breaks, whitespaces []byte + for { + // Check that there are no document indicators at the beginning of the line. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected document indicator") + return false + } + + // Check for EOF. + if is_z(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected end of stream") + return false + } + + // Consume non-blank characters. + leading_blanks := false + for !is_blankz(parser.buffer, parser.buffer_pos) { + if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { + // Is is an escaped single quote. + s = append(s, '\'') + skip(parser) + skip(parser) + + } else if single && parser.buffer[parser.buffer_pos] == '\'' { + // It is a right single quote. + break + } else if !single && parser.buffer[parser.buffer_pos] == '"' { + // It is a right double quote. + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { + // It is an escaped line break. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + skip(parser) + skip_line(parser) + leading_blanks = true + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' { + // It is an escape sequence. + code_length := 0 + + // Check the escape character. + switch parser.buffer[parser.buffer_pos+1] { + case '0': + s = append(s, 0) + case 'a': + s = append(s, '\x07') + case 'b': + s = append(s, '\x08') + case 't', '\t': + s = append(s, '\x09') + case 'n': + s = append(s, '\x0A') + case 'v': + s = append(s, '\x0B') + case 'f': + s = append(s, '\x0C') + case 'r': + s = append(s, '\x0D') + case 'e': + s = append(s, '\x1B') + case ' ': + s = append(s, '\x20') + case '"': + s = append(s, '"') + case '\'': + s = append(s, '\'') + case '\\': + s = append(s, '\\') + case 'N': // NEL (#x85) + s = append(s, '\xC2') + s = append(s, '\x85') + case '_': // #xA0 + s = append(s, '\xC2') + s = append(s, '\xA0') + case 'L': // LS (#x2028) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA8') + case 'P': // PS (#x2029) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA9') + case 'x': + code_length = 2 + case 'u': + code_length = 4 + case 'U': + code_length = 8 + default: + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found unknown escape character") + return false + } + + skip(parser) + skip(parser) + + // Consume an arbitrary escape code. + if code_length > 0 { + var value int + + // Scan the character value. + if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { + return false + } + for k := 0; k < code_length; k++ { + if !is_hex(parser.buffer, parser.buffer_pos+k) { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "did not find expected hexdecimal number") + return false + } + value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) + } + + // Check the value and write the character. + if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found invalid Unicode character escape code") + return false + } + if value <= 0x7F { + s = append(s, byte(value)) + } else if value <= 0x7FF { + s = append(s, byte(0xC0+(value>>6))) + s = append(s, byte(0x80+(value&0x3F))) + } else if value <= 0xFFFF { + s = append(s, byte(0xE0+(value>>12))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } else { + s = append(s, byte(0xF0+(value>>18))) + s = append(s, byte(0x80+((value>>12)&0x3F))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } + + // Advance the pointer. + for k := 0; k < code_length; k++ { + skip(parser) + } + } + } else { + // It is a non-escaped non-blank character. + s = read(parser, s) + } + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check if we are at the end of the scalar. + if single { + if parser.buffer[parser.buffer_pos] == '\'' { + break + } + } else { + if parser.buffer[parser.buffer_pos] == '"' { + break + } + } + + // Consume blank characters. + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Join the whitespaces or fold line breaks. + if leading_blanks { + // Do we need to fold line breaks? + if len(leading_break) > 0 && leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Eat the right quote. + skip(parser) + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_SINGLE_QUOTED_SCALAR_STYLE, + } + if !single { + token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + return true +} + +// Scan a plain scalar. +func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { + + var s, leading_break, trailing_breaks, whitespaces []byte + var leading_blanks bool + var indent = parser.indent + 1 + + start_mark := parser.mark + end_mark := parser.mark + + // Consume the content of the plain scalar. + for { + // Check for a document indicator. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + break + } + + // Check for a comment. + if parser.buffer[parser.buffer_pos] == '#' { + break + } + + // Consume non-blank characters. + for !is_blankz(parser.buffer, parser.buffer_pos) { + + // Check for indicators that may end a plain scalar. + if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level > 0 && + (parser.buffer[parser.buffer_pos] == ',' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}')) { + break + } + + // Check if we need to join whitespaces and breaks. + if leading_blanks || len(whitespaces) > 0 { + if leading_blanks { + // Do we need to fold line breaks? + if leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + leading_blanks = false + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Copy the character. + s = read(parser, s) + + end_mark = parser.mark + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + // Is it the end? + if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { + break + } + + // Consume blank characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + + // Check for tab characters that abuse indentation. + if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found a tab character that violates indentation") + return false + } + + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check indentation level. + if parser.flow_level == 0 && parser.mark.column < indent { + break + } + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_PLAIN_SCALAR_STYLE, + } + + // Note that we change the 'simple_key_allowed' flag. + if leading_blanks { + parser.simple_key_allowed = true + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go new file mode 100644 index 0000000..4c45e66 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/sorter.go @@ -0,0 +1,113 @@ +package yaml + +import ( + "reflect" + "unicode" +) + +type keyList []reflect.Value + +func (l keyList) Len() int { return len(l) } +func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } +func (l keyList) Less(i, j int) bool { + a := l[i] + b := l[j] + ak := a.Kind() + bk := b.Kind() + for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { + a = a.Elem() + ak = a.Kind() + } + for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { + b = b.Elem() + bk = b.Kind() + } + af, aok := keyFloat(a) + bf, bok := keyFloat(b) + if aok && bok { + if af != bf { + return af < bf + } + if ak != bk { + return ak < bk + } + return numLess(a, b) + } + if ak != reflect.String || bk != reflect.String { + return ak < bk + } + ar, br := []rune(a.String()), []rune(b.String()) + for i := 0; i < len(ar) && i < len(br); i++ { + if ar[i] == br[i] { + continue + } + al := unicode.IsLetter(ar[i]) + bl := unicode.IsLetter(br[i]) + if al && bl { + return ar[i] < br[i] + } + if al || bl { + return bl + } + var ai, bi int + var an, bn int64 + if ar[i] == '0' || br[i] == '0' { + for j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- { + if ar[j] != '0' { + an = 1 + bn = 1 + break + } + } + } + for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { + an = an*10 + int64(ar[ai]-'0') + } + for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { + bn = bn*10 + int64(br[bi]-'0') + } + if an != bn { + return an < bn + } + if ai != bi { + return ai < bi + } + return ar[i] < br[i] + } + return len(ar) < len(br) +} + +// keyFloat returns a float value for v if it is a number/bool +// and whether it is a number/bool or not. +func keyFloat(v reflect.Value) (f float64, ok bool) { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return float64(v.Int()), true + case reflect.Float32, reflect.Float64: + return v.Float(), true + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return float64(v.Uint()), true + case reflect.Bool: + if v.Bool() { + return 1, true + } + return 0, true + } + return 0, false +} + +// numLess returns whether a < b. +// a and b must necessarily have the same kind. +func numLess(a, b reflect.Value) bool { + switch a.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return a.Int() < b.Int() + case reflect.Float32, reflect.Float64: + return a.Float() < b.Float() + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return a.Uint() < b.Uint() + case reflect.Bool: + return !a.Bool() && b.Bool() + } + panic("not a number") +} diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go new file mode 100644 index 0000000..a2dde60 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/writerc.go @@ -0,0 +1,26 @@ +package yaml + +// Set the writer error and return false. +func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_WRITER_ERROR + emitter.problem = problem + return false +} + +// Flush the output buffer. +func yaml_emitter_flush(emitter *yaml_emitter_t) bool { + if emitter.write_handler == nil { + panic("write handler not set") + } + + // Check if the buffer is empty. + if emitter.buffer_pos == 0 { + return true + } + + if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { + return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) + } + emitter.buffer_pos = 0 + return true +} diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go new file mode 100644 index 0000000..de85aa4 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yaml.go @@ -0,0 +1,466 @@ +// Package yaml implements YAML support for the Go language. +// +// Source code and other details for the project are available at GitHub: +// +// https://github.com/go-yaml/yaml +// +package yaml + +import ( + "errors" + "fmt" + "io" + "reflect" + "strings" + "sync" +) + +// MapSlice encodes and decodes as a YAML map. +// The order of keys is preserved when encoding and decoding. +type MapSlice []MapItem + +// MapItem is an item in a MapSlice. +type MapItem struct { + Key, Value interface{} +} + +// The Unmarshaler interface may be implemented by types to customize their +// behavior when being unmarshaled from a YAML document. The UnmarshalYAML +// method receives a function that may be called to unmarshal the original +// YAML value into a field or variable. It is safe to call the unmarshal +// function parameter more than once if necessary. +type Unmarshaler interface { + UnmarshalYAML(unmarshal func(interface{}) error) error +} + +// The Marshaler interface may be implemented by types to customize their +// behavior when being marshaled into a YAML document. The returned value +// is marshaled in place of the original value implementing Marshaler. +// +// If an error is returned by MarshalYAML, the marshaling procedure stops +// and returns with the provided error. +type Marshaler interface { + MarshalYAML() (interface{}, error) +} + +// Unmarshal decodes the first document found within the in byte slice +// and assigns decoded values into the out value. +// +// Maps and pointers (to a struct, string, int, etc) are accepted as out +// values. If an internal pointer within a struct is not initialized, +// the yaml package will initialize it if necessary for unmarshalling +// the provided data. The out parameter must not be nil. +// +// The type of the decoded values should be compatible with the respective +// values in out. If one or more values cannot be decoded due to a type +// mismatches, decoding continues partially until the end of the YAML +// content, and a *yaml.TypeError is returned with details for all +// missed values. +// +// Struct fields are only unmarshalled if they are exported (have an +// upper case first letter), and are unmarshalled using the field name +// lowercased as the default key. Custom keys may be defined via the +// "yaml" name in the field tag: the content preceding the first comma +// is used as the key, and the following comma-separated options are +// used to tweak the marshalling process (see Marshal). +// Conflicting names result in a runtime error. +// +// For example: +// +// type T struct { +// F int `yaml:"a,omitempty"` +// B int +// } +// var t T +// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) +// +// See the documentation of Marshal for the format of tags and a list of +// supported tag options. +// +func Unmarshal(in []byte, out interface{}) (err error) { + return unmarshal(in, out, false) +} + +// UnmarshalStrict is like Unmarshal except that any fields that are found +// in the data that do not have corresponding struct members, or mapping +// keys that are duplicates, will result in +// an error. +func UnmarshalStrict(in []byte, out interface{}) (err error) { + return unmarshal(in, out, true) +} + +// A Decorder reads and decodes YAML values from an input stream. +type Decoder struct { + strict bool + parser *parser +} + +// NewDecoder returns a new decoder that reads from r. +// +// The decoder introduces its own buffering and may read +// data from r beyond the YAML values requested. +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{ + parser: newParserFromReader(r), + } +} + +// SetStrict sets whether strict decoding behaviour is enabled when +// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict. +func (dec *Decoder) SetStrict(strict bool) { + dec.strict = strict +} + +// Decode reads the next YAML-encoded value from its input +// and stores it in the value pointed to by v. +// +// See the documentation for Unmarshal for details about the +// conversion of YAML into a Go value. +func (dec *Decoder) Decode(v interface{}) (err error) { + d := newDecoder(dec.strict) + defer handleErr(&err) + node := dec.parser.parse() + if node == nil { + return io.EOF + } + out := reflect.ValueOf(v) + if out.Kind() == reflect.Ptr && !out.IsNil() { + out = out.Elem() + } + d.unmarshal(node, out) + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + +func unmarshal(in []byte, out interface{}, strict bool) (err error) { + defer handleErr(&err) + d := newDecoder(strict) + p := newParser(in) + defer p.destroy() + node := p.parse() + if node != nil { + v := reflect.ValueOf(out) + if v.Kind() == reflect.Ptr && !v.IsNil() { + v = v.Elem() + } + d.unmarshal(node, v) + } + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + +// Marshal serializes the value provided into a YAML document. The structure +// of the generated document will reflect the structure of the value itself. +// Maps and pointers (to struct, string, int, etc) are accepted as the in value. +// +// Struct fields are only marshalled if they are exported (have an upper case +// first letter), and are marshalled using the field name lowercased as the +// default key. Custom keys may be defined via the "yaml" name in the field +// tag: the content preceding the first comma is used as the key, and the +// following comma-separated options are used to tweak the marshalling process. +// Conflicting names result in a runtime error. +// +// The field tag format accepted is: +// +// `(...) yaml:"[][,[,]]" (...)` +// +// The following flags are currently supported: +// +// omitempty Only include the field if it's not set to the zero +// value for the type or to empty slices or maps. +// Zero valued structs will be omitted if all their public +// fields are zero, unless they implement an IsZero +// method (see the IsZeroer interface type), in which +// case the field will be included if that method returns true. +// +// flow Marshal using a flow style (useful for structs, +// sequences and maps). +// +// inline Inline the field, which must be a struct or a map, +// causing all of its fields or keys to be processed as if +// they were part of the outer struct. For maps, keys must +// not conflict with the yaml keys of other struct fields. +// +// In addition, if the key is "-", the field is ignored. +// +// For example: +// +// type T struct { +// F int `yaml:"a,omitempty"` +// B int +// } +// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" +// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" +// +func Marshal(in interface{}) (out []byte, err error) { + defer handleErr(&err) + e := newEncoder() + defer e.destroy() + e.marshalDoc("", reflect.ValueOf(in)) + e.finish() + out = e.out + return +} + +// An Encoder writes YAML values to an output stream. +type Encoder struct { + encoder *encoder +} + +// NewEncoder returns a new encoder that writes to w. +// The Encoder should be closed after use to flush all data +// to w. +func NewEncoder(w io.Writer) *Encoder { + return &Encoder{ + encoder: newEncoderWithWriter(w), + } +} + +// Encode writes the YAML encoding of v to the stream. +// If multiple items are encoded to the stream, the +// second and subsequent document will be preceded +// with a "---" document separator, but the first will not. +// +// See the documentation for Marshal for details about the conversion of Go +// values to YAML. +func (e *Encoder) Encode(v interface{}) (err error) { + defer handleErr(&err) + e.encoder.marshalDoc("", reflect.ValueOf(v)) + return nil +} + +// Close closes the encoder by writing any remaining data. +// It does not write a stream terminating string "...". +func (e *Encoder) Close() (err error) { + defer handleErr(&err) + e.encoder.finish() + return nil +} + +func handleErr(err *error) { + if v := recover(); v != nil { + if e, ok := v.(yamlError); ok { + *err = e.err + } else { + panic(v) + } + } +} + +type yamlError struct { + err error +} + +func fail(err error) { + panic(yamlError{err}) +} + +func failf(format string, args ...interface{}) { + panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) +} + +// A TypeError is returned by Unmarshal when one or more fields in +// the YAML document cannot be properly decoded into the requested +// types. When this error is returned, the value is still +// unmarshaled partially. +type TypeError struct { + Errors []string +} + +func (e *TypeError) Error() string { + return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) +} + +// -------------------------------------------------------------------------- +// Maintain a mapping of keys to structure field indexes + +// The code in this section was copied from mgo/bson. + +// structInfo holds details for the serialization of fields of +// a given struct. +type structInfo struct { + FieldsMap map[string]fieldInfo + FieldsList []fieldInfo + + // InlineMap is the number of the field in the struct that + // contains an ,inline map, or -1 if there's none. + InlineMap int +} + +type fieldInfo struct { + Key string + Num int + OmitEmpty bool + Flow bool + // Id holds the unique field identifier, so we can cheaply + // check for field duplicates without maintaining an extra map. + Id int + + // Inline holds the field index if the field is part of an inlined struct. + Inline []int +} + +var structMap = make(map[reflect.Type]*structInfo) +var fieldMapMutex sync.RWMutex + +func getStructInfo(st reflect.Type) (*structInfo, error) { + fieldMapMutex.RLock() + sinfo, found := structMap[st] + fieldMapMutex.RUnlock() + if found { + return sinfo, nil + } + + n := st.NumField() + fieldsMap := make(map[string]fieldInfo) + fieldsList := make([]fieldInfo, 0, n) + inlineMap := -1 + for i := 0; i != n; i++ { + field := st.Field(i) + if field.PkgPath != "" && !field.Anonymous { + continue // Private field + } + + info := fieldInfo{Num: i} + + tag := field.Tag.Get("yaml") + if tag == "" && strings.Index(string(field.Tag), ":") < 0 { + tag = string(field.Tag) + } + if tag == "-" { + continue + } + + inline := false + fields := strings.Split(tag, ",") + if len(fields) > 1 { + for _, flag := range fields[1:] { + switch flag { + case "omitempty": + info.OmitEmpty = true + case "flow": + info.Flow = true + case "inline": + inline = true + default: + return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) + } + } + tag = fields[0] + } + + if inline { + switch field.Type.Kind() { + case reflect.Map: + if inlineMap >= 0 { + return nil, errors.New("Multiple ,inline maps in struct " + st.String()) + } + if field.Type.Key() != reflect.TypeOf("") { + return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) + } + inlineMap = info.Num + case reflect.Struct: + sinfo, err := getStructInfo(field.Type) + if err != nil { + return nil, err + } + for _, finfo := range sinfo.FieldsList { + if _, found := fieldsMap[finfo.Key]; found { + msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + if finfo.Inline == nil { + finfo.Inline = []int{i, finfo.Num} + } else { + finfo.Inline = append([]int{i}, finfo.Inline...) + } + finfo.Id = len(fieldsList) + fieldsMap[finfo.Key] = finfo + fieldsList = append(fieldsList, finfo) + } + default: + //return nil, errors.New("Option ,inline needs a struct value or map field") + return nil, errors.New("Option ,inline needs a struct value field") + } + continue + } + + if tag != "" { + info.Key = tag + } else { + info.Key = strings.ToLower(field.Name) + } + + if _, found = fieldsMap[info.Key]; found { + msg := "Duplicated key '" + info.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + + info.Id = len(fieldsList) + fieldsList = append(fieldsList, info) + fieldsMap[info.Key] = info + } + + sinfo = &structInfo{ + FieldsMap: fieldsMap, + FieldsList: fieldsList, + InlineMap: inlineMap, + } + + fieldMapMutex.Lock() + structMap[st] = sinfo + fieldMapMutex.Unlock() + return sinfo, nil +} + +// IsZeroer is used to check whether an object is zero to +// determine whether it should be omitted when marshaling +// with the omitempty flag. One notable implementation +// is time.Time. +type IsZeroer interface { + IsZero() bool +} + +func isZero(v reflect.Value) bool { + kind := v.Kind() + if z, ok := v.Interface().(IsZeroer); ok { + if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { + return true + } + return z.IsZero() + } + switch kind { + case reflect.String: + return len(v.String()) == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflect.Slice: + return v.Len() == 0 + case reflect.Map: + return v.Len() == 0 + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Struct: + vt := v.Type() + for i := v.NumField() - 1; i >= 0; i-- { + if vt.Field(i).PkgPath != "" { + continue // Private field + } + if !isZero(v.Field(i)) { + return false + } + } + return true + } + return false +} diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go new file mode 100644 index 0000000..e25cee5 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlh.go @@ -0,0 +1,738 @@ +package yaml + +import ( + "fmt" + "io" +) + +// The version directive data. +type yaml_version_directive_t struct { + major int8 // The major version number. + minor int8 // The minor version number. +} + +// The tag directive data. +type yaml_tag_directive_t struct { + handle []byte // The tag handle. + prefix []byte // The tag prefix. +} + +type yaml_encoding_t int + +// The stream encoding. +const ( + // Let the parser choose the encoding. + yaml_ANY_ENCODING yaml_encoding_t = iota + + yaml_UTF8_ENCODING // The default UTF-8 encoding. + yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. + yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. +) + +type yaml_break_t int + +// Line break types. +const ( + // Let the parser choose the break type. + yaml_ANY_BREAK yaml_break_t = iota + + yaml_CR_BREAK // Use CR for line breaks (Mac style). + yaml_LN_BREAK // Use LN for line breaks (Unix style). + yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). +) + +type yaml_error_type_t int + +// Many bad things could happen with the parser and emitter. +const ( + // No error is produced. + yaml_NO_ERROR yaml_error_type_t = iota + + yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. + yaml_READER_ERROR // Cannot read or decode the input stream. + yaml_SCANNER_ERROR // Cannot scan the input stream. + yaml_PARSER_ERROR // Cannot parse the input stream. + yaml_COMPOSER_ERROR // Cannot compose a YAML document. + yaml_WRITER_ERROR // Cannot write to the output stream. + yaml_EMITTER_ERROR // Cannot emit a YAML stream. +) + +// The pointer position. +type yaml_mark_t struct { + index int // The position index. + line int // The position line. + column int // The position column. +} + +// Node Styles + +type yaml_style_t int8 + +type yaml_scalar_style_t yaml_style_t + +// Scalar styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota + + yaml_PLAIN_SCALAR_STYLE // The plain scalar style. + yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. + yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. + yaml_LITERAL_SCALAR_STYLE // The literal scalar style. + yaml_FOLDED_SCALAR_STYLE // The folded scalar style. +) + +type yaml_sequence_style_t yaml_style_t + +// Sequence styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota + + yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. + yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. +) + +type yaml_mapping_style_t yaml_style_t + +// Mapping styles. +const ( + // Let the emitter choose the style. + yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota + + yaml_BLOCK_MAPPING_STYLE // The block mapping style. + yaml_FLOW_MAPPING_STYLE // The flow mapping style. +) + +// Tokens + +type yaml_token_type_t int + +// Token types. +const ( + // An empty token. + yaml_NO_TOKEN yaml_token_type_t = iota + + yaml_STREAM_START_TOKEN // A STREAM-START token. + yaml_STREAM_END_TOKEN // A STREAM-END token. + + yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. + yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. + yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. + yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. + + yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. + yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. + yaml_BLOCK_END_TOKEN // A BLOCK-END token. + + yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. + yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. + yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. + yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. + + yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. + yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. + yaml_KEY_TOKEN // A KEY token. + yaml_VALUE_TOKEN // A VALUE token. + + yaml_ALIAS_TOKEN // An ALIAS token. + yaml_ANCHOR_TOKEN // An ANCHOR token. + yaml_TAG_TOKEN // A TAG token. + yaml_SCALAR_TOKEN // A SCALAR token. +) + +func (tt yaml_token_type_t) String() string { + switch tt { + case yaml_NO_TOKEN: + return "yaml_NO_TOKEN" + case yaml_STREAM_START_TOKEN: + return "yaml_STREAM_START_TOKEN" + case yaml_STREAM_END_TOKEN: + return "yaml_STREAM_END_TOKEN" + case yaml_VERSION_DIRECTIVE_TOKEN: + return "yaml_VERSION_DIRECTIVE_TOKEN" + case yaml_TAG_DIRECTIVE_TOKEN: + return "yaml_TAG_DIRECTIVE_TOKEN" + case yaml_DOCUMENT_START_TOKEN: + return "yaml_DOCUMENT_START_TOKEN" + case yaml_DOCUMENT_END_TOKEN: + return "yaml_DOCUMENT_END_TOKEN" + case yaml_BLOCK_SEQUENCE_START_TOKEN: + return "yaml_BLOCK_SEQUENCE_START_TOKEN" + case yaml_BLOCK_MAPPING_START_TOKEN: + return "yaml_BLOCK_MAPPING_START_TOKEN" + case yaml_BLOCK_END_TOKEN: + return "yaml_BLOCK_END_TOKEN" + case yaml_FLOW_SEQUENCE_START_TOKEN: + return "yaml_FLOW_SEQUENCE_START_TOKEN" + case yaml_FLOW_SEQUENCE_END_TOKEN: + return "yaml_FLOW_SEQUENCE_END_TOKEN" + case yaml_FLOW_MAPPING_START_TOKEN: + return "yaml_FLOW_MAPPING_START_TOKEN" + case yaml_FLOW_MAPPING_END_TOKEN: + return "yaml_FLOW_MAPPING_END_TOKEN" + case yaml_BLOCK_ENTRY_TOKEN: + return "yaml_BLOCK_ENTRY_TOKEN" + case yaml_FLOW_ENTRY_TOKEN: + return "yaml_FLOW_ENTRY_TOKEN" + case yaml_KEY_TOKEN: + return "yaml_KEY_TOKEN" + case yaml_VALUE_TOKEN: + return "yaml_VALUE_TOKEN" + case yaml_ALIAS_TOKEN: + return "yaml_ALIAS_TOKEN" + case yaml_ANCHOR_TOKEN: + return "yaml_ANCHOR_TOKEN" + case yaml_TAG_TOKEN: + return "yaml_TAG_TOKEN" + case yaml_SCALAR_TOKEN: + return "yaml_SCALAR_TOKEN" + } + return "" +} + +// The token structure. +type yaml_token_t struct { + // The token type. + typ yaml_token_type_t + + // The start/end of the token. + start_mark, end_mark yaml_mark_t + + // The stream encoding (for yaml_STREAM_START_TOKEN). + encoding yaml_encoding_t + + // The alias/anchor/scalar value or tag/tag directive handle + // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). + value []byte + + // The tag suffix (for yaml_TAG_TOKEN). + suffix []byte + + // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). + prefix []byte + + // The scalar style (for yaml_SCALAR_TOKEN). + style yaml_scalar_style_t + + // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). + major, minor int8 +} + +// Events + +type yaml_event_type_t int8 + +// Event types. +const ( + // An empty event. + yaml_NO_EVENT yaml_event_type_t = iota + + yaml_STREAM_START_EVENT // A STREAM-START event. + yaml_STREAM_END_EVENT // A STREAM-END event. + yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. + yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. + yaml_ALIAS_EVENT // An ALIAS event. + yaml_SCALAR_EVENT // A SCALAR event. + yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. + yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. + yaml_MAPPING_START_EVENT // A MAPPING-START event. + yaml_MAPPING_END_EVENT // A MAPPING-END event. +) + +var eventStrings = []string{ + yaml_NO_EVENT: "none", + yaml_STREAM_START_EVENT: "stream start", + yaml_STREAM_END_EVENT: "stream end", + yaml_DOCUMENT_START_EVENT: "document start", + yaml_DOCUMENT_END_EVENT: "document end", + yaml_ALIAS_EVENT: "alias", + yaml_SCALAR_EVENT: "scalar", + yaml_SEQUENCE_START_EVENT: "sequence start", + yaml_SEQUENCE_END_EVENT: "sequence end", + yaml_MAPPING_START_EVENT: "mapping start", + yaml_MAPPING_END_EVENT: "mapping end", +} + +func (e yaml_event_type_t) String() string { + if e < 0 || int(e) >= len(eventStrings) { + return fmt.Sprintf("unknown event %d", e) + } + return eventStrings[e] +} + +// The event structure. +type yaml_event_t struct { + + // The event type. + typ yaml_event_type_t + + // The start and end of the event. + start_mark, end_mark yaml_mark_t + + // The document encoding (for yaml_STREAM_START_EVENT). + encoding yaml_encoding_t + + // The version directive (for yaml_DOCUMENT_START_EVENT). + version_directive *yaml_version_directive_t + + // The list of tag directives (for yaml_DOCUMENT_START_EVENT). + tag_directives []yaml_tag_directive_t + + // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). + anchor []byte + + // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + tag []byte + + // The scalar value (for yaml_SCALAR_EVENT). + value []byte + + // Is the document start/end indicator implicit, or the tag optional? + // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). + implicit bool + + // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). + quoted_implicit bool + + // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + style yaml_style_t +} + +func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } +func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } +func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } + +// Nodes + +const ( + yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. + yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. + yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. + yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. + yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. + yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. + + yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. + yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. + + // Not in original libyaml. + yaml_BINARY_TAG = "tag:yaml.org,2002:binary" + yaml_MERGE_TAG = "tag:yaml.org,2002:merge" + + yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. + yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. + yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. +) + +type yaml_node_type_t int + +// Node types. +const ( + // An empty node. + yaml_NO_NODE yaml_node_type_t = iota + + yaml_SCALAR_NODE // A scalar node. + yaml_SEQUENCE_NODE // A sequence node. + yaml_MAPPING_NODE // A mapping node. +) + +// An element of a sequence node. +type yaml_node_item_t int + +// An element of a mapping node. +type yaml_node_pair_t struct { + key int // The key of the element. + value int // The value of the element. +} + +// The node structure. +type yaml_node_t struct { + typ yaml_node_type_t // The node type. + tag []byte // The node tag. + + // The node data. + + // The scalar parameters (for yaml_SCALAR_NODE). + scalar struct { + value []byte // The scalar value. + length int // The length of the scalar value. + style yaml_scalar_style_t // The scalar style. + } + + // The sequence parameters (for YAML_SEQUENCE_NODE). + sequence struct { + items_data []yaml_node_item_t // The stack of sequence items. + style yaml_sequence_style_t // The sequence style. + } + + // The mapping parameters (for yaml_MAPPING_NODE). + mapping struct { + pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). + pairs_start *yaml_node_pair_t // The beginning of the stack. + pairs_end *yaml_node_pair_t // The end of the stack. + pairs_top *yaml_node_pair_t // The top of the stack. + style yaml_mapping_style_t // The mapping style. + } + + start_mark yaml_mark_t // The beginning of the node. + end_mark yaml_mark_t // The end of the node. + +} + +// The document structure. +type yaml_document_t struct { + + // The document nodes. + nodes []yaml_node_t + + // The version directive. + version_directive *yaml_version_directive_t + + // The list of tag directives. + tag_directives_data []yaml_tag_directive_t + tag_directives_start int // The beginning of the tag directives list. + tag_directives_end int // The end of the tag directives list. + + start_implicit int // Is the document start indicator implicit? + end_implicit int // Is the document end indicator implicit? + + // The start/end of the document. + start_mark, end_mark yaml_mark_t +} + +// The prototype of a read handler. +// +// The read handler is called when the parser needs to read more bytes from the +// source. The handler should write not more than size bytes to the buffer. +// The number of written bytes should be set to the size_read variable. +// +// [in,out] data A pointer to an application data specified by +// yaml_parser_set_input(). +// [out] buffer The buffer to write the data from the source. +// [in] size The size of the buffer. +// [out] size_read The actual number of bytes read from the source. +// +// On success, the handler should return 1. If the handler failed, +// the returned value should be 0. On EOF, the handler should set the +// size_read to 0 and return 1. +type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) + +// This structure holds information about a potential simple key. +type yaml_simple_key_t struct { + possible bool // Is a simple key possible? + required bool // Is a simple key required? + token_number int // The number of the token. + mark yaml_mark_t // The position mark. +} + +// The states of the parser. +type yaml_parser_state_t int + +const ( + yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota + + yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. + yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. + yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. + yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. + yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. + yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. + yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. + yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. + yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. + yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. + yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. + yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. + yaml_PARSE_END_STATE // Expect nothing. +) + +func (ps yaml_parser_state_t) String() string { + switch ps { + case yaml_PARSE_STREAM_START_STATE: + return "yaml_PARSE_STREAM_START_STATE" + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_START_STATE: + return "yaml_PARSE_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return "yaml_PARSE_DOCUMENT_CONTENT_STATE" + case yaml_PARSE_DOCUMENT_END_STATE: + return "yaml_PARSE_DOCUMENT_END_STATE" + case yaml_PARSE_BLOCK_NODE_STATE: + return "yaml_PARSE_BLOCK_NODE_STATE" + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" + case yaml_PARSE_FLOW_NODE_STATE: + return "yaml_PARSE_FLOW_NODE_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" + case yaml_PARSE_END_STATE: + return "yaml_PARSE_END_STATE" + } + return "" +} + +// This structure holds aliases data. +type yaml_alias_data_t struct { + anchor []byte // The anchor. + index int // The node id. + mark yaml_mark_t // The anchor mark. +} + +// The parser structure. +// +// All members are internal. Manage the structure using the +// yaml_parser_ family of functions. +type yaml_parser_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + + problem string // Error description. + + // The byte about which the problem occurred. + problem_offset int + problem_value int + problem_mark yaml_mark_t + + // The error context. + context string + context_mark yaml_mark_t + + // Reader stuff + + read_handler yaml_read_handler_t // Read handler. + + input_reader io.Reader // File input data. + input []byte // String input data. + input_pos int + + eof bool // EOF flag + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + unread int // The number of unread characters in the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The input encoding. + + offset int // The offset of the current position (in bytes). + mark yaml_mark_t // The mark of the current position. + + // Scanner stuff + + stream_start_produced bool // Have we started to scan the input stream? + stream_end_produced bool // Have we reached the end of the input stream? + + flow_level int // The number of unclosed '[' and '{' indicators. + + tokens []yaml_token_t // The tokens queue. + tokens_head int // The head of the tokens queue. + tokens_parsed int // The number of tokens fetched from the queue. + token_available bool // Does the tokens queue contain a token ready for dequeueing. + + indent int // The current indentation level. + indents []int // The indentation levels stack. + + simple_key_allowed bool // May a simple key occur at the current position? + simple_keys []yaml_simple_key_t // The stack of simple keys. + + // Parser stuff + + state yaml_parser_state_t // The current parser state. + states []yaml_parser_state_t // The parser states stack. + marks []yaml_mark_t // The stack of marks. + tag_directives []yaml_tag_directive_t // The list of TAG directives. + + // Dumper stuff + + aliases []yaml_alias_data_t // The alias data. + + document *yaml_document_t // The currently parsed document. +} + +// Emitter Definitions + +// The prototype of a write handler. +// +// The write handler is called when the emitter needs to flush the accumulated +// characters to the output. The handler should write @a size bytes of the +// @a buffer to the output. +// +// @param[in,out] data A pointer to an application data specified by +// yaml_emitter_set_output(). +// @param[in] buffer The buffer with bytes to be written. +// @param[in] size The size of the buffer. +// +// @returns On success, the handler should return @c 1. If the handler failed, +// the returned value should be @c 0. +// +type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error + +type yaml_emitter_state_t int + +// The emitter states. +const ( + // Expect STREAM-START. + yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota + + yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. + yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. + yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. + yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. + yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. + yaml_EMIT_END_STATE // Expect nothing. +) + +// The emitter structure. +// +// All members are internal. Manage the structure using the @c yaml_emitter_ +// family of functions. +type yaml_emitter_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + problem string // Error description. + + // Writer stuff + + write_handler yaml_write_handler_t // Write handler. + + output_buffer *[]byte // String output data. + output_writer io.Writer // File output data. + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The stream encoding. + + // Emitter stuff + + canonical bool // If the output is in the canonical style? + best_indent int // The number of indentation spaces. + best_width int // The preferred width of the output lines. + unicode bool // Allow unescaped non-ASCII characters? + line_break yaml_break_t // The preferred line break. + + state yaml_emitter_state_t // The current emitter state. + states []yaml_emitter_state_t // The stack of states. + + events []yaml_event_t // The event queue. + events_head int // The head of the event queue. + + indents []int // The stack of indentation levels. + + tag_directives []yaml_tag_directive_t // The list of tag directives. + + indent int // The current indentation level. + + flow_level int // The current flow level. + + root_context bool // Is it the document root context? + sequence_context bool // Is it a sequence context? + mapping_context bool // Is it a mapping context? + simple_key_context bool // Is it a simple mapping key context? + + line int // The current line. + column int // The current column. + whitespace bool // If the last character was a whitespace? + indention bool // If the last character was an indentation character (' ', '-', '?', ':')? + open_ended bool // If an explicit document end is required? + + // Anchor analysis. + anchor_data struct { + anchor []byte // The anchor value. + alias bool // Is it an alias? + } + + // Tag analysis. + tag_data struct { + handle []byte // The tag handle. + suffix []byte // The tag suffix. + } + + // Scalar analysis. + scalar_data struct { + value []byte // The scalar value. + multiline bool // Does the scalar contain line breaks? + flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? + block_plain_allowed bool // Can the scalar be expressed in the block plain style? + single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? + block_allowed bool // Can the scalar be expressed in the literal or folded styles? + style yaml_scalar_style_t // The output style. + } + + // Dumper stuff + + opened bool // If the stream was already opened? + closed bool // If the stream was already closed? + + // The information associated with the document nodes. + anchors *struct { + references int // The number of references. + anchor int // The anchor id. + serialized bool // If the node has been emitted? + } + + last_anchor_id int // The last assigned anchor id. + + document *yaml_document_t // The currently emitted document. +} diff --git a/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go new file mode 100644 index 0000000..8110ce3 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlprivateh.go @@ -0,0 +1,173 @@ +package yaml + +const ( + // The size of the input raw buffer. + input_raw_buffer_size = 512 + + // The size of the input buffer. + // It should be possible to decode the whole raw buffer. + input_buffer_size = input_raw_buffer_size * 3 + + // The size of the output buffer. + output_buffer_size = 128 + + // The size of the output raw buffer. + // It should be possible to encode the whole output buffer. + output_raw_buffer_size = (output_buffer_size*2 + 2) + + // The size of other stacks and queues. + initial_stack_size = 16 + initial_queue_size = 16 + initial_string_size = 16 +) + +// Check if the character at the specified position is an alphabetical +// character, a digit, '_', or '-'. +func is_alpha(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' +} + +// Check if the character at the specified position is a digit. +func is_digit(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' +} + +// Get the value of a digit. +func as_digit(b []byte, i int) int { + return int(b[i]) - '0' +} + +// Check if the character at the specified position is a hex-digit. +func is_hex(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' +} + +// Get the value of a hex-digit. +func as_hex(b []byte, i int) int { + bi := b[i] + if bi >= 'A' && bi <= 'F' { + return int(bi) - 'A' + 10 + } + if bi >= 'a' && bi <= 'f' { + return int(bi) - 'a' + 10 + } + return int(bi) - '0' +} + +// Check if the character is ASCII. +func is_ascii(b []byte, i int) bool { + return b[i] <= 0x7F +} + +// Check if the character at the start of the buffer can be printed unescaped. +func is_printable(b []byte, i int) bool { + return ((b[i] == 0x0A) || // . == #x0A + (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E + (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF + (b[i] > 0xC2 && b[i] < 0xED) || + (b[i] == 0xED && b[i+1] < 0xA0) || + (b[i] == 0xEE) || + (b[i] == 0xEF && // #xE000 <= . <= #xFFFD + !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF + !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) +} + +// Check if the character at the specified position is NUL. +func is_z(b []byte, i int) bool { + return b[i] == 0x00 +} + +// Check if the beginning of the buffer is a BOM. +func is_bom(b []byte, i int) bool { + return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF +} + +// Check if the character at the specified position is space. +func is_space(b []byte, i int) bool { + return b[i] == ' ' +} + +// Check if the character at the specified position is tab. +func is_tab(b []byte, i int) bool { + return b[i] == '\t' +} + +// Check if the character at the specified position is blank (space or tab). +func is_blank(b []byte, i int) bool { + //return is_space(b, i) || is_tab(b, i) + return b[i] == ' ' || b[i] == '\t' +} + +// Check if the character at the specified position is a line break. +func is_break(b []byte, i int) bool { + return (b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) +} + +func is_crlf(b []byte, i int) bool { + return b[i] == '\r' && b[i+1] == '\n' +} + +// Check if the character is a line break or NUL. +func is_breakz(b []byte, i int) bool { + //return is_break(b, i) || is_z(b, i) + return ( // is_break: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + // is_z: + b[i] == 0) +} + +// Check if the character is a line break, space, or NUL. +func is_spacez(b []byte, i int) bool { + //return is_space(b, i) || is_breakz(b, i) + return ( // is_space: + b[i] == ' ' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Check if the character is a line break, space, tab, or NUL. +func is_blankz(b []byte, i int) bool { + //return is_blank(b, i) || is_breakz(b, i) + return ( // is_blank: + b[i] == ' ' || b[i] == '\t' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Determine the width of the character. +func width(b byte) int { + // Don't replace these by a switch without first + // confirming that it is being inlined. + if b&0x80 == 0x00 { + return 1 + } + if b&0xE0 == 0xC0 { + return 2 + } + if b&0xF0 == 0xE0 { + return 3 + } + if b&0xF8 == 0xF0 { + return 4 + } + return 0 + +} diff --git a/vendor/modules.txt b/vendor/modules.txt new file mode 100644 index 0000000..d50b95c --- /dev/null +++ b/vendor/modules.txt @@ -0,0 +1,54 @@ +# github.com/erayarslan/go-bladerf v0.0.2-alpha +## explicit +github.com/erayarslan/go-bladerf +github.com/erayarslan/go-bladerf/error +# github.com/fsnotify/fsnotify v1.4.7 +github.com/fsnotify/fsnotify +# github.com/hashicorp/hcl v1.0.0 +github.com/hashicorp/hcl +github.com/hashicorp/hcl/hcl/ast +github.com/hashicorp/hcl/hcl/parser +github.com/hashicorp/hcl/hcl/printer +github.com/hashicorp/hcl/hcl/scanner +github.com/hashicorp/hcl/hcl/strconv +github.com/hashicorp/hcl/hcl/token +github.com/hashicorp/hcl/json/parser +github.com/hashicorp/hcl/json/scanner +github.com/hashicorp/hcl/json/token +# github.com/magiconair/properties v1.8.1 +github.com/magiconair/properties +# github.com/mattn/go-pointer v0.0.1 +github.com/mattn/go-pointer +# github.com/mitchellh/mapstructure v1.1.2 +github.com/mitchellh/mapstructure +# github.com/pelletier/go-toml v1.2.0 +github.com/pelletier/go-toml +# github.com/rs/zerolog v1.22.0 +## explicit +github.com/rs/zerolog +github.com/rs/zerolog/internal/cbor +github.com/rs/zerolog/internal/json +# github.com/spf13/afero v1.1.2 +github.com/spf13/afero +github.com/spf13/afero/mem +# github.com/spf13/cast v1.3.0 +github.com/spf13/cast +# github.com/spf13/jwalterweatherman v1.0.0 +github.com/spf13/jwalterweatherman +# github.com/spf13/pflag v1.0.3 +github.com/spf13/pflag +# github.com/spf13/viper v1.7.1 +## explicit +github.com/spf13/viper +# github.com/subosito/gotenv v1.2.0 +github.com/subosito/gotenv +# golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 +golang.org/x/sys/internal/unsafeheader +golang.org/x/sys/unix +# golang.org/x/text v0.3.3 +golang.org/x/text/transform +golang.org/x/text/unicode/norm +# gopkg.in/ini.v1 v1.51.0 +gopkg.in/ini.v1 +# gopkg.in/yaml.v2 v2.2.4 +gopkg.in/yaml.v2

vZ1p8gYR%3Wop-jaIY^z4`@W%COlI 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 Zb9(1OR(j|eaHhwKZY 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